]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
cifs: some missing initializations on replay
authorShyam Prasad N <sprasad@microsoft.com>
Sat, 14 Feb 2026 10:29:13 +0000 (15:59 +0530)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:21:32 +0000 (07:21 -0500)
[ Upstream commit 14f66f44646333d2bfd7ece36585874fd72f8286 ]

In several places in the code, we have a label to signify
the start of the code where a request can be replayed if
necessary. However, some of these places were missing the
necessary reinitializations of certain local variables
before replay.

This change makes sure that these variables get initialized
after the label.

Cc: stable@vger.kernel.org
Reported-by: Yuchan Nam <entropy1110@gmail.com>
Tested-by: Yuchan Nam <entropy1110@gmail.com>
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/smb/client/smb2ops.c
fs/smb/client/smb2pdu.c

index 1b404def355e92e7e11bcd935118c569a9c65c9d..9c22daff2497092ea30837dfe0890893d2cba505 100644 (file)
@@ -1184,6 +1184,7 @@ smb2_set_ea(const unsigned int xid, struct cifs_tcon *tcon,
 
 replay_again:
        /* reinitialize for possible replay */
+       used_len = 0;
        flags = CIFS_CP_CREATE_CLOSE_OP;
        oplock = SMB2_OPLOCK_LEVEL_NONE;
        server = cifs_pick_channel(ses);
@@ -1582,6 +1583,7 @@ smb2_ioctl_query_info(const unsigned int xid,
 
 replay_again:
        /* reinitialize for possible replay */
+       buffer = NULL;
        flags = CIFS_CP_CREATE_CLOSE_OP;
        oplock = SMB2_OPLOCK_LEVEL_NONE;
        server = cifs_pick_channel(ses);
index 8082507586e8113db6e43fe871ae562c3f856c21..1ef82408ecad6d7ce6fca9845e1ab87250b09e96 100644 (file)
@@ -2845,6 +2845,7 @@ int smb311_posix_mkdir(const unsigned int xid, struct inode *inode,
 
 replay_again:
        /* reinitialize for possible replay */
+       pc_buf = NULL;
        flags = 0;
        n_iov = 2;
        server = cifs_pick_channel(ses);