diff options
| author | Zikang Gao <2715417602@qq.com> | 2026-10-14 04:19:44 -0400 |
|---|---|---|
| committer | Paulo Alcantara <pc@manguebit.org> | 2026-10-15 16:45:21 -0300 |
| commit | 2225ab306575e424b3dad2ee1be2521c89249d15 (patch) | |
| tree | e9a93a8ae68842e9dac998f7e7f07f09c8968920 /tools/perf/scripts/python/bin | |
| parent | 8667061cf99394526dd9c0ea2662e6bbc7ae7848 (diff) | |
| download | linux-2225ab306575e424b3dad2ee1be2521c89249d15.tar.gz linux-2225ab306575e424b3dad2ee1be2521c89249d15.zip | |
smb: client: do not pass a NULL buf to is_oplock_break()
receive_encrypted_read() sets *num_mids = 1 and never writes the
caller's bufs[]. Offload returns -1 with *num_mids = 0, so the
demultiplex thread skips the frame. The inline decrypt path
returns 0 even when smb2_find_mid() fails.
cifs_demultiplex_thread() then treats mids[i] == NULL as an
oplock break and calls is_oplock_break(bufs[i], server) with
bufs[i] still NULL. smb2_is_valid_oplock_break() reads
hdr.Command at offset 12 and oopses.
A large encrypted READ whose MessageId does not match is enough
to panic cifsd.
Oops: general protection fault, probably for non-canonical address
0xdffffc0000000001: 0000 [#1] SMP KASAN PTI
KASAN: null-ptr-deref in range
[0x0000000000000008-0x000000000000000f]
CPU: 0 PID: 100 Comm: cifsd
RIP: smb2_is_valid_oplock_break+0xc8/0x2270 [cifs]
cifs_demultiplex_thread
Kernel panic - not syncing: Fatal exception
Return -1 when inline decrypt finds no mid, and skip
is_oplock_break() plus the unknown-frame dump when bufs[i]
is NULL. receive_encrypted_standard() already assigns
bufs[*num_mids].
Fixes: c42a6abe3012 ("CIFS: Add capability to decrypt big read responses")
Assisted-by: LLM
Signed-off-by: Zikang Gao <2715417602@qq.com>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Cc: stable@vger.kernel.org
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
