From: Leigh Brown Date: Mon, 18 Dec 2006 01:12:30 +0000 (-0800) Subject: [TCP]: Fix oops caused by tcp_v4_md5_do_del X-Git-Tag: firefly_0821_release~31832 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8228a18dd30f5c988b722495ea6c25cb1d2be035;p=firefly-linux-kernel-4.4.55.git [TCP]: Fix oops caused by tcp_v4_md5_do_del md5sig_info.alloced4 must be set to zero when freeing keys4, otherwise it will not be alloc'd again when another key is added to the same socket by tcp_v4_md5_do_add. Signed-off-by: Leigh Brown Signed-off-by: David S. Miller --- diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c index a1222d6968c4..fa814fc506d5 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -928,6 +928,7 @@ int tcp_v4_md5_do_del(struct sock *sk, __be32 addr) if (tp->md5sig_info->entries4 == 0) { kfree(tp->md5sig_info->keys4); tp->md5sig_info->keys4 = NULL; + tp->md5sig_info->alloced4 = 0; } else if (tp->md5sig_info->entries4 != i) { /* Need to do some manipulation */ memcpy(&tp->md5sig_info->keys4[i],