]> git.ipfire.org Git - thirdparty/linux.git/commit
smb: client: fix UBSAN array-index-out-of-bounds in smb2_copychunk_range
authorHenrique Carvalho <henrique.carvalho@suse.com>
Mon, 29 Dec 2025 17:49:43 +0000 (14:49 -0300)
committerSteve French <stfrench@microsoft.com>
Tue, 30 Dec 2025 15:17:41 +0000 (09:17 -0600)
commitfa2fd0b10f66b08bc44745feed1761d7c1539d6e
treec2120a3bbf733288130b25717ef8e94ea4475889
parentbc311611625a8aaa26813809a2c820fcd286ba2b
smb: client: fix UBSAN array-index-out-of-bounds in smb2_copychunk_range

struct copychunk_ioctl_req::ChunkCount is annotated with
__counted_by_le() as the number of elements in Chunks[].

smb2_copychunk_range reuses ChunkCount to store the number of chunks
sent in the current iteration. If a later iteration populates more
chunks than a previous one, the stale smaller value trips UBSAN.

Set ChunkCount to chunk_count (allocated capacity) before populating
Chunks[].

Fixes: cc26f593dc19 ("smb: move copychunk definitions to common/smb2pdu.h")
Link: https://lore.kernel.org/linux-cifs/CAH2r5ms9AWLy8WZ04Cpq5XOeVK64tcrUQ6__iMW+yk1VPzo1BA@mail.gmail.com
Tested-by: Youling Tang <tangyouling@kylinos.cn>
Acked-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Henrique Carvalho <henrique.carvalho@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/smb2ops.c