Message ID | 1470935842-13884-1-git-send-email-colin.king@canonical.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Colin King <colin.king@canonical.com> Date: Thu, 11 Aug 2016 18:17:22 +0100 > From: Colin Ian King <colin.king@canonical.com> > > Currently, if calipso_genopt fails then the error exit path > does not free the ipv6_opt_hdr new causing a memory leak. Fix > this by kfree'ing new on the error exit path. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> Applied, thanks.
diff --git a/net/ipv6/calipso.c b/net/ipv6/calipso.c index c53b92c..37ac9de 100644 --- a/net/ipv6/calipso.c +++ b/net/ipv6/calipso.c @@ -952,8 +952,10 @@ calipso_opt_insert(struct ipv6_opt_hdr *hop, memcpy(new, hop, start); ret_val = calipso_genopt((unsigned char *)new, start, buf_len, doi_def, secattr); - if (ret_val < 0) + if (ret_val < 0) { + kfree(new); return ERR_PTR(ret_val); + } buf_len = start + ret_val; /* At this point buf_len aligns to 4n, so (buf_len & 4) pads to 8n */