]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
smb/client: zero-initialize stack-allocated cifs_open_info_data
authorChenXiaoSong <chenxiaosong@kylinos.cn>
Thu, 9 Jul 2026 02:57:02 +0000 (10:57 +0800)
committerSteve French <stfrench@microsoft.com>
Thu, 9 Jul 2026 12:55:55 +0000 (07:55 -0500)
Stack-allocated cifs_open_info_data may contain random data.
This can make some fields have wrong value if they are not set later.

Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/link.c
fs/smb/client/smb1ops.c
fs/smb/client/smb2ops.c

index b60dc407815dc4f758ed2c2d234cabd5cb56e665..8d5d6aca742aa137c56a807364bbb59969e1a297 100644 (file)
@@ -234,7 +234,7 @@ cifs_query_mf_symlink(unsigned int xid, struct cifs_tcon *tcon,
        struct cifs_open_parms oparms;
        struct cifs_io_parms io_parms = {0};
        int buf_type = CIFS_NO_BUFFER;
-       struct cifs_open_info_data query_data;
+       struct cifs_open_info_data query_data = {};
 
        oparms = (struct cifs_open_parms) {
                .tcon = tcon,
index d34b3d99f6ed3a26bd3540ccb2ea614dd550ab7f..f72879af12c978b8531eee9eea3f9647e6198369 100644 (file)
@@ -949,7 +949,7 @@ smb_set_file_info(struct inode *inode, const char *full_path,
        struct cifs_open_parms oparms;
        struct cifsFileInfo *open_file;
        FILE_BASIC_INFO new_buf;
-       struct cifs_open_info_data query_data;
+       struct cifs_open_info_data query_data = {};
        __le64 write_time = buf->LastWriteTime;
        struct cifsInodeInfo *cinode = CIFS_I(inode);
        struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
index 1d60a431494b6f7f8efe1bf89acecce103f2a661..6bce44b171e432d5002b49d0bfac9f9edf0fe557 100644 (file)
@@ -5237,7 +5237,7 @@ int __cifs_sfu_make_node(unsigned int xid, struct inode *inode,
 {
        struct TCP_Server_Info *server = tcon->ses->server;
        struct cifs_open_parms oparms;
-       struct cifs_open_info_data idata;
+       struct cifs_open_info_data idata = {};
        struct cifs_io_parms io_parms = {};
        struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
        struct cifs_fid fid;