linux/fs/cifs
Paul Aurich baf57b56d3 cifs: Fix leak when handling lease break for cached root fid
Handling a lease break for the cached root didn't free the
smb2_lease_break_work allocation, resulting in a leak:

    unreferenced object 0xffff98383a5af480 (size 128):
      comm "cifsd", pid 684, jiffies 4294936606 (age 534.868s)
      hex dump (first 32 bytes):
        c0 ff ff ff 1f 00 00 00 88 f4 5a 3a 38 98 ff ff  ..........Z:8...
        88 f4 5a 3a 38 98 ff ff 80 88 d6 8a ff ff ff ff  ..Z:8...........
      backtrace:
        [<0000000068957336>] smb2_is_valid_oplock_break+0x1fa/0x8c0
        [<0000000073b70b9e>] cifs_demultiplex_thread+0x73d/0xcc0
        [<00000000905fa372>] kthread+0x11c/0x150
        [<0000000079378e4e>] ret_from_fork+0x22/0x30

Avoid this leak by only allocating when necessary.

Fixes: a93864d939 ("cifs: add lease tracking to the cached root fid")
Signed-off-by: Paul Aurich <paul@darkrain42.org>
CC: Stable <stable@vger.kernel.org> # v4.18+
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
2020-08-02 18:00:25 -05:00
..
asn1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
cache.c smb3: extend fscache mount volume coherency check 2020-06-06 11:16:25 -05:00
cifs_debug.c cifs: Display local UID details for SMB sessions in DebugData 2020-07-01 19:38:19 -05:00
cifs_debug.h cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
cifs_dfs_ref.c cifs: fix potential mismatch of UNC paths 2020-02-24 14:20:38 -06:00
cifs_fs_sb.h smb3: add mount option to allow RW caching of share accessed by only 1 client 2019-09-16 11:43:38 -05:00
cifs_ioctl.h cifs: add SMB3 change notification support 2020-02-06 09:14:28 -06:00
cifs_spnego.c cifs: switch servers depending on binding state 2019-11-25 01:16:30 -06:00
cifs_spnego.h
cifs_unicode.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07: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: fix chown and chgrp when idsfromsid mount option enabled 2020-06-12 13:21:32 -05:00
cifsacl.h smb3: allow uid and gid owners to be set on create with idsfromsid mount option 2020-06-12 13:21:15 -05:00
cifsencrypt.c cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
cifsfs.c smb3: fix typo in mount options displayed in /proc/mounts 2020-06-10 12:05:15 -05:00
cifsfs.h cifs: update internal module version number 2020-07-09 10:07:09 -05:00
cifsglob.h cifs: Add get_security_type_str function to return sec type. 2020-06-08 23:57:21 -05:00
cifspdu.h cifs: cifspdu.h: Replace zero-length array with flexible-array member 2020-03-22 22:49:10 -05:00
cifsproto.h smb3: allow uid and gid owners to be set on create with idsfromsid mount option 2020-06-12 13:21:15 -05:00
cifsroot.c cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
cifssmb.c cifs: minor fix to two debug messages 2020-06-01 00:10:18 -05:00
connect.c SMB3: Honor 'posix' flag for multiuser mounts 2020-07-01 19:41:36 -05:00
dfs_cache.c cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
dfs_cache.h cifs: handle prefix paths in reconnect 2020-03-22 22:49:09 -05:00
dir.c smb311: add support for using info level for posix extensions query 2020-06-12 08:54:12 -05:00
dns_resolve.c keys: Pass the network namespace into request_key mechanism 2019-06-27 23:02:12 +01:00
dns_resolve.h
export.c docs: fs: convert docs without extension to ReST 2019-07-31 13:31:05 -06:00
file.c cifs: remove the retry in cifs_poxis_lock_set 2020-07-07 23:51:16 -05:00
fscache.c smb3: extend fscache mount volume coherency check 2020-06-06 11:16:25 -05:00
fscache.h smb3: extend fscache mount volume coherency check 2020-06-06 11:16:25 -05:00
inode.c Revert "cifs: Fix the target file was deleted when rename failed." 2020-07-23 15:44:11 -05:00
ioctl.c cifs: fix reference leak for tlink 2020-07-09 10:06:52 -05:00
Kconfig smb3: smbdirect support can be configured by default 2020-04-07 13:39:00 -05:00
link.c smb311: add support for using info level for posix extensions query 2020-06-12 08:54:12 -05:00
Makefile cifs: Add support for root file systems 2019-09-16 11:43:38 -05:00
misc.c cifs: misc: Use array_size() in if-statement controlling expression 2020-06-23 19:06:27 -05:00
netmisc.c cifs: Standardize logging output 2020-06-01 00:10:18 -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: dynamic allocation of ntlmssp blob 2016-06-23 23:45:07 -05:00
readdir.c cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
rfc1002pdu.h
sess.c cifs: multichannel: try to rebind when reconnecting a channel 2020-06-04 13:50:55 -05:00
smb1ops.c cifs: Standardize logging output 2020-06-01 00:10:18 -05:00
smb2file.c cifs: allow unlock flock and OFD lock across fork 2020-03-22 22:49:09 -05:00
smb2glob.h SMB311: Add support for query info using posix extensions (level 100) 2020-06-12 06:20:38 -05:00
smb2inode.c smb311: Add tracepoints for new compound posix query info 2020-06-12 08:55:18 -05:00
smb2maperror.c smb3: improve handling of share deleted (and share recreated) 2019-09-16 11:43:38 -05:00
smb2misc.c cifs: Fix leak when handling lease break for cached root fid 2020-08-02 18:00:25 -05:00
smb2ops.c smb3: fix access denied on change notify request to some servers 2020-07-07 18:24:39 -05:00
smb2pdu.c smb3: Add debug message for new file creation with idsfromsid mount option 2020-06-12 16:31:06 -05:00
smb2pdu.h SMB311: Add support for query info using posix extensions (level 100) 2020-06-12 06:20:38 -05:00
smb2proto.h smb311: Add support for SMB311 query info (non-compounded) 2020-06-12 06:21:06 -05:00
smb2status.h cifs: don't use __constant_cpu_to_le32() 2019-05-07 23:24:54 -05:00
smb2transport.c smb3: remove overly noisy debug line in signing errors 2020-04-16 12:23:40 -05:00
smbdirect.c cifs: Standardize logging output 2020-06-01 00:10:18 -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 fs: cifs: move from the crypto cipher API to the new DES library interface 2019-08-22 14:57:34 +10:00
smberr.h
smbfsctl.h smb3: Add missing reparse tags 2019-09-24 23:31:32 -05:00
trace.c smb3: Cleanup license mess 2019-01-24 09:37:33 -06:00
trace.h smb311: Add tracepoints for new compound posix query info 2020-06-12 08:55:18 -05:00
transport.c cifs: prevent truncation from long to int in wait_for_free_credits 2020-07-01 20:01:26 -05:00
winucase.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
xattr.c CIFS: Add support for setting owner info, dos attributes, and create time 2020-01-26 19:24:17 -06:00