Browse Source

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

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
YOSHIFUJI Hideaki 19 years ago
parent
commit
8b8aa4b5a6
1 changed files with 2 additions and 1 deletions
  1. 2 1
      net/ipv6/exthdrs.c

+ 2 - 1
net/ipv6/exthdrs.c

@@ -628,6 +628,7 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
 	if (!tot_len)
 	if (!tot_len)
 		return NULL;
 		return NULL;
 
 
+	tot_len += sizeof(*opt2);
 	opt2 = sock_kmalloc(sk, tot_len, GFP_ATOMIC);
 	opt2 = sock_kmalloc(sk, tot_len, GFP_ATOMIC);
 	if (!opt2)
 	if (!opt2)
 		return ERR_PTR(-ENOBUFS);
 		return ERR_PTR(-ENOBUFS);
@@ -668,7 +669,7 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
 
 
 	return opt2;
 	return opt2;
 out:
 out:
-	sock_kfree_s(sk, p, tot_len);
+	sock_kfree_s(sk, opt2, opt2->tot_len);
 	return ERR_PTR(err);
 	return ERR_PTR(err);
 }
 }