Re: [PATCH v2] smb: client: fix fiemap wild read on empty truncated response

From: Paulo Alcantara

Date: Fri Oct 23 2026 - 16:24:39 EST


Abdifatah Suruur <suruurism@xxxxxxxxx> writes:

> smb3_fiemap() treats -E2BIG from SMB2_ioctl() as a truncated range blob
> and loops for the next chunk. If the server reports
> STATUS_BUFFER_OVERFLOW with OutputCount == 0, SMB2_ioctl() returns
> -E2BIG with out_data == NULL and out_data_len == 0, and the existing
> length checks accept the empty result. The loop then evaluates
>
> next = out_data[num - 1].file_offset + ...
>
> with num == 0, reading 16 bytes before NULL.
>
> Reject a truncated range blob that contains no range, so the resume
> offset is never computed from an empty response. Also require the last
> range in a truncated blob to advance the resume offset without
> overflowing, and to stay within the requested range; a malicious or
> broken server could otherwise make no progress or underflow len and loop
> forever. Free the previous response buffer before retrying.
> ...

Applied.