diff options
author | Xin Long <lucien.xin@gmail.com> | 2022-04-20 22:52:41 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-04-23 23:34:17 +0200 |
commit | 165e3e17fe8fe6a8aab319bc6e631a2e23b9a857 (patch) | |
tree | 5dfdfa5974e8ca474c904907e86da84cdc0f94d2 /lib/fonts/font_6x10.c | |
parent | net: ethernet: stmmac: fix write to sgmii_adapter_base (diff) | |
download | linux-165e3e17fe8fe6a8aab319bc6e631a2e23b9a857.tar.xz linux-165e3e17fe8fe6a8aab319bc6e631a2e23b9a857.zip |
sctp: check asoc strreset_chunk in sctp_generate_reconf_event
A null pointer reference issue can be triggered when the response of a
stream reconf request arrives after the timer is triggered, such as:
send Incoming SSN Reset Request --->
CPU0:
reconf timer is triggered,
go to the handler code before hold sk lock
<--- reply with Outgoing SSN Reset Request
CPU1:
process Outgoing SSN Reset Request,
and set asoc->strreset_chunk to NULL
CPU0:
continue the handler code, hold sk lock,
and try to hold asoc->strreset_chunk, crash!
In Ying Xu's testing, the call trace is:
[ ] BUG: kernel NULL pointer dereference, address: 0000000000000010
[ ] RIP: 0010:sctp_chunk_hold+0xe/0x40 [sctp]
[ ] Call Trace:
[ ] <IRQ>
[ ] sctp_sf_send_reconf+0x2c/0x100 [sctp]
[ ] sctp_do_sm+0xa4/0x220 [sctp]
[ ] sctp_generate_reconf_event+0xbd/0xe0 [sctp]
[ ] call_timer_fn+0x26/0x130
This patch is to fix it by returning from the timer handler if asoc
strreset_chunk is already set to NULL.
Fixes: 7b9438de0cd4 ("sctp: add stream reconf timer")
Reported-by: Ying Xu <yinxu@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/fonts/font_6x10.c')
0 files changed, 0 insertions, 0 deletions