• Paul Aurich's avatar
    cifs: Fix leak when handling lease break for cached root fid · baf57b56
    Paul Aurich authored
    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: a93864d9 ("cifs: add lease tracking to the cached root fid")
    Signed-off-by: default avatarPaul Aurich <paul@darkrain42.org>
    CC: Stable <stable@vger.kernel.org> # v4.18+
    Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    baf57b56
smb2misc.c 26 KB