diff options
| author | Leigh Brown <[email protected]> | 2006-12-18 01:12:30 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2006-12-18 05:59:25 +0000 |
| commit | 8228a18dd30f5c988b722495ea6c25cb1d2be035 (patch) | |
| tree | 20469a1ca9989d399d175f138e9b6d1c33c5f1af /net/ipv4/tcp_ipv4.c | |
| parent | [CONNECTOR]: Fix compilation breakage introduced recently. (diff) | |
| download | kernel-8228a18dd30f5c988b722495ea6c25cb1d2be035.tar.gz kernel-8228a18dd30f5c988b722495ea6c25cb1d2be035.zip | |
[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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/ipv4/tcp_ipv4.c')
| -rw-r--r-- | net/ipv4/tcp_ipv4.c | 1 |
1 files changed, 1 insertions, 0 deletions
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], |
