WSL2-Linux-Kernel/fs/cifs
Paulo Alcantara 9ebaafec97 cifs: fix memory leak of smb3_fs_context_dup::server_hostname
commit 869da64d07 upstream.

Fix memory leak of smb3_fs_context_dup::server_hostname when parsing
and duplicating fs contexts during mount(2) as reported by kmemleak:

  unreferenced object 0xffff888125715c90 (size 16):
    comm "mount.cifs", pid 3832, jiffies 4304535868 (age 190.094s)
    hex dump (first 16 bytes):
      7a 65 6c 64 61 2e 74 65 73 74 00 6b 6b 6b 6b a5  zelda.test.kkkk.
    backtrace:
      [<ffffffff8168106e>] kstrdup+0x2e/0x60
      [<ffffffffa027a362>] smb3_fs_context_dup+0x392/0x8d0 [cifs]
      [<ffffffffa0136353>] cifs_smb3_do_mount+0x143/0x1700 [cifs]
      [<ffffffffa02795e8>] smb3_get_tree+0x2e8/0x520 [cifs]
      [<ffffffff817a19aa>] vfs_get_tree+0x8a/0x2d0
      [<ffffffff8181e3e3>] path_mount+0x423/0x1a10
      [<ffffffff8181fbca>] __x64_sys_mount+0x1fa/0x270
      [<ffffffff83ae364b>] do_syscall_64+0x3b/0x90
      [<ffffffff83c0007c>] entry_SYSCALL_64_after_hwframe+0x44/0xae
  unreferenced object 0xffff888111deed20 (size 32):
    comm "mount.cifs", pid 3832, jiffies 4304536044 (age 189.918s)
    hex dump (first 32 bytes):
      44 46 53 52 4f 4f 54 31 2e 5a 45 4c 44 41 2e 54  DFSROOT1.ZELDA.T
      45 53 54 00 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b a5  EST.kkkkkkkkkkk.
    backtrace:
      [<ffffffff8168118d>] kstrndup+0x2d/0x90
      [<ffffffffa027ab2e>] smb3_parse_devname+0x9e/0x360 [cifs]
      [<ffffffffa01870c8>] cifs_setup_volume_info+0xa8/0x470 [cifs]
      [<ffffffffa018c469>] connect_dfs_target+0x309/0xc80 [cifs]
      [<ffffffffa018d6cb>] cifs_mount+0x8eb/0x17f0 [cifs]
      [<ffffffffa0136475>] cifs_smb3_do_mount+0x265/0x1700 [cifs]
      [<ffffffffa02795e8>] smb3_get_tree+0x2e8/0x520 [cifs]
      [<ffffffff817a19aa>] vfs_get_tree+0x8a/0x2d0
      [<ffffffff8181e3e3>] path_mount+0x423/0x1a10
      [<ffffffff8181fbca>] __x64_sys_mount+0x1fa/0x270
      [<ffffffff83ae364b>] do_syscall_64+0x3b/0x90
      [<ffffffff83c0007c>] entry_SYSCALL_64_after_hwframe+0x44/0xae

Fixes: 7be3248f31 ("cifs: To match file servers, make sure the server hostname matches")
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-11-18 19:17:20 +01:00
..
Kconfig cifs: create a MD4 module and switch cifs.ko to use it 2021-08-25 15:48:00 -05:00
Makefile cifs: decoding negTokenInit with generic ASN1 decoder 2021-06-20 21:28:17 -05:00
asn1.c cifs: decoding negTokenInit with generic ASN1 decoder 2021-06-20 21:28:17 -05:00
cache.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_debug.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_debug.h cifs: use SPDX-Licence-Identifier 2021-06-20 21:28:17 -05:00
cifs_dfs_ref.c cifs: Do not use the original cruid when following DFS links for multiuser mounts 2021-07-14 10:06:33 -05:00
cifs_fs_sb.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_ioctl.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_spnego.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_spnego.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_spnego_negtokeninit.asn1 cifs: decoding negTokenInit with generic ASN1 decoder 2021-06-20 21:28:17 -05:00
cifs_swn.c cifs: remove support for NTLM and weaker authentication algorithms 2021-08-25 15:47:06 -05:00
cifs_swn.h cifs: simplify SWN code with dummy funcs instead of ifdefs 2021-04-25 16:28:22 -05:00
cifs_unicode.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifs_unicode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cifs_uniupr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cifsacl.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifsacl.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifsencrypt.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifsfs.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifsfs.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifsglob.h cifs: set a minimum of 120s for next dns resolution 2021-11-18 19:16:06 +01:00
cifspdu.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
cifsproto.h cifs: Deferred close performance improvements 2021-09-17 16:39:53 -05:00
cifsroot.c cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
cifssmb.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
connect.c cifs: set a minimum of 120s for next dns resolution 2021-11-18 19:16:06 +01:00
dfs_cache.c cifs: support share failover when remounting 2021-07-22 11:43:23 -05:00
dfs_cache.h cifs: support share failover when remounting 2021-07-22 11:43:23 -05:00
dir.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
dns_resolve.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
dns_resolve.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
export.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
file.c smb3: do not error on fsync when readonly 2021-11-18 19:17:13 +01:00
fs_context.c cifs: fix memory leak of smb3_fs_context_dup::server_hostname 2021-11-18 19:17:20 +01:00
fs_context.h cifs: To match file servers, make sure the server hostname matches 2021-11-18 19:16:06 +01:00
fscache.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
fscache.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
inode.c cifs: Deferred close performance improvements 2021-09-17 16:39:53 -05:00
ioctl.c cifs: fix incorrect kernel doc comments 2021-09-13 18:29:46 -05:00
link.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
misc.c smb3: correct server pointer dereferencing check to be more consistent 2021-09-23 21:12:23 -05:00
netlink.c cifs: Constify static struct genl_ops 2021-06-20 21:28:16 -05:00
netlink.h cifs: Register generic netlink family 2020-12-14 09:16:22 -06:00
netmisc.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
nterr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
nterr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
ntlmssp.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
readdir.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
rfc1002pdu.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
sess.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb1ops.c cifs: constify path argument of ->make_node() 2021-04-25 16:28:23 -05:00
smb2file.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2glob.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2inode.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2maperror.c cifs: cifs_md4 convert to SPDX identifier 2021-08-25 15:51:52 -05:00
smb2misc.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2ops.c cifs: properly invalidate cached root handle when closing it 2021-09-09 17:34:38 -05:00
smb2pdu.c smb3: correct smb3 ACL security descriptor 2021-09-23 16:17:07 -05:00
smb2pdu.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2proto.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2status.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smb2transport.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
smbdirect.c smbdirect: missing rc checks while waiting for rdma events 2021-06-22 12:08:32 -05:00
smbdirect.h cifs: smbd: Do not schedule work to send immediate packet on every receive 2020-04-07 12:41:16 -05:00
smbencrypt.c cifs: rename cifs_common to smbfs_common 2021-09-08 23:59:26 -05:00
smberr.h cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
trace.c smb3: Cleanup license mess 2019-01-24 09:37:33 -06:00
trace.h cifs: fix string declarations and assignments in tracepoints 2021-05-27 14:04:32 -05:00
transport.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
unc.c cifs: don't cargo-cult strndup() 2021-04-25 16:28:23 -05:00
winucase.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00
xattr.c cifs: remove pathname for file from SPDX header 2021-09-13 14:51:10 -05:00