mirror of
https://gitee.com/openharmony/kernel_linux
synced 2025-02-26 14:46:40 +00:00
tcp: Fix slab corruption with ipv6 and tcp6fuzz
From: Evgeniy Polyakov <johnpol@2ka.mipt.ru> This fixes a regression added by ec3c0982a2dd1e671bad8e9d26c28dcba0039d87 ("[TCP]: TCP_DEFER_ACCEPT updates - process as established") tcp_v6_do_rcv()->tcp_rcv_established(), the latter goes to step5, where eventually skb can be freed via tcp_data_queue() (drop: label), then if check for tcp_defer_accept_check() returns true and thus tcp_rcv_established() returns -1, which forces tcp_v6_do_rcv() to jump to reset: label, which in turn will pass through discard: label and free the same skb again. Tested by Eric Sesterhenn. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-By: Patrick McManus <mcmanus@ducksong.com>
This commit is contained in:
parent
dae5029548
commit
9ae27e0adb
@ -4925,8 +4925,7 @@ step5:
|
||||
tcp_data_snd_check(sk);
|
||||
tcp_ack_snd_check(sk);
|
||||
|
||||
if (tcp_defer_accept_check(sk))
|
||||
return -1;
|
||||
tcp_defer_accept_check(sk);
|
||||
return 0;
|
||||
|
||||
csum_error:
|
||||
|
Loading…
x
Reference in New Issue
Block a user