diff options
| author | Frank Sorenson <sorenson@redhat.com> | 2026-09-16 16:33:57 -0500 |
|---|---|---|
| committer | Paulo Alcantara <pc@manguebit.org> | 2026-09-17 15:04:07 -0300 |
| commit | eeb5ef6083e1cefa2ef75041b5597ff228b8d7bb (patch) | |
| tree | 3d3c7a7e15646409f9bf8d060ce2ecdaef5850ce /tools/perf/scripts/python/bin | |
| parent | 1b3221bb121079ad79a1f3c3aa360ba649832e7a (diff) | |
| download | linux-next-eeb5ef6083e1cefa2ef75041b5597ff228b8d7bb.tar.gz linux-next-eeb5ef6083e1cefa2ef75041b5597ff228b8d7bb.zip | |
smb: client: fix OOB struct field reads in move_smb2_ea_to_cifs()
In move_smb2_ea_to_cifs(), the while (src_size > 0) loop condition is
insufficient. It allows iteration to continue even if the remaining
src_size is too small to contain a complete smb2_ea_info structure.
Consequently, reads of ea_name_length and ea_value_length can occur
out-of-bounds.
Fix this by ensuring src_size >= sizeof(*src) before attempting to read
any structure fields. Additionally, reject any next_entry_offset that is
smaller than sizeof(*src) or that would advance the pointer beyond the
available buffer.
Note that for calls where the server returns a malformed EA list, the
error returned to userspace changes from -ENODATA (getxattr) or
-ERANGE (listxattr) to -EIO. This correctly signals a server protocol
error rather than misleadingly indicating "attribute not present" or
"output buffer too small".
Fixes: 95907fea4fd8 ("cifs: Add support for reading attributes on SMB2+")
Cc: stable@vger.kernel.org
Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
