Currently tarpit_generic() just returns on failure, but this does not
free nskb.
Signed-off-by: Josh Hunt <johunt@akamai.com>
====
Fixes:
- length2, SYSRQ, RAWNAT: preinitialize values for ipv6_find_hdr
+- TARPIT: fix memory leak when tarpit_generic() fails
v1.45 (2012-07-16)
((u_int8_t *)tcph)[13] = 0;
if (!tarpit_generic(tcph, oth, payload, mode))
- return;
+ goto free_nskb;
/* Adjust TCP checksum */
tcph->check = 0;
payload = nskb->len - sizeof(struct ipv6hdr) - sizeof(struct tcphdr);
if (!tarpit_generic(&oth, tcph, payload, mode))
- return;
+ goto free_nskb;
ip6h->payload_len = htons(sizeof(struct tcphdr));
tcph->check = 0;