From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Date: Sun, 20 Nov 2005 03:18:17 +0000 (+0900)
Subject: [IPV6]: Fix memory management error during setting up new advapi sockopts.
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8b8aa4b5a66ecf90f0a7033c8cbc49cfd97c4347;p=linux.git

[IPV6]: Fix memory management error during setting up new advapi sockopts.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
---

diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c
index 922549581abc2..748577b76d75a 100644
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -628,6 +628,7 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
 	if (!tot_len)
 		return NULL;
 
+	tot_len += sizeof(*opt2);
 	opt2 = sock_kmalloc(sk, tot_len, GFP_ATOMIC);
 	if (!opt2)
 		return ERR_PTR(-ENOBUFS);
@@ -668,7 +669,7 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
 
 	return opt2;
 out:
-	sock_kfree_s(sk, p, tot_len);
+	sock_kfree_s(sk, opt2, opt2->tot_len);
 	return ERR_PTR(err);
 }