]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
smb: client: fix wrong index reference in smb2_compound_op()
authorSang-Heon Jeon <ekffu200098@gmail.com>
Tue, 23 Sep 2025 08:16:45 +0000 (17:16 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Oct 2025 11:48:34 +0000 (13:48 +0200)
[ Upstream commit fbe2dc6a9c7318f7263f5e4d50f6272b931c5756 ]

In smb2_compound_op(), the loop that processes each command's response
uses wrong indices when accessing response bufferes.

This incorrect indexing leads to improper handling of command results.
Also, if incorrectly computed index is greather than or equal to
MAX_COMPOUND, it can cause out-of-bounds accesses.

Fixes: 3681c74d342d ("smb: client: handle lack of EA support in smb2_query_path_info()") # 6.14
Reviewed-by: Paulo Alcantara (Red Hat) <pc@manguebit.org>
Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/smb/client/smb2inode.c

index 86cad8ee8e6f3baec272cbb3e835ffcc57f292c0..ac3ce183bd59a9daf49a35a509e64562eada0432 100644 (file)
@@ -687,7 +687,7 @@ finished:
        }
 
        for (i = 0; i < num_cmds; i++) {
-               char *buf = rsp_iov[i + i].iov_base;
+               char *buf = rsp_iov[i + 1].iov_base;
 
                if (buf && resp_buftype[i + 1] != CIFS_NO_BUFFER)
                        rc = server->ops->map_error(buf, false);