From: Colin Ian King Date: Thu, 11 Aug 2016 17:17:22 +0000 (+0100) Subject: calipso: fix resource leak on calipso_genopt failure X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b4c0e0c61f81dedc82dda35c287ea149ff98b434;p=linux.git calipso: fix resource leak on calipso_genopt failure 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 Signed-off-by: David S. Miller --- diff --git a/net/ipv6/calipso.c b/net/ipv6/calipso.c index c53b92c617c54..37ac9de713c69 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 */