]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
cifs: fix wrong release in sess_alloc_buffer() failed path
authorDing Hui <dinghui@sangfor.com.cn>
Tue, 17 Aug 2021 14:55:10 +0000 (22:55 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 5 Nov 2021 09:18:47 +0000 (10:18 +0100)
BugLink: https://bugs.launchpad.net/bugs/1947781
[ Upstream commit d72c74197b70bc3c95152f351a568007bffa3e11 ]

smb_buf is allocated by small_smb_init_no_tc(), and buf type is
CIFS_SMALL_BUFFER, so we should use cifs_small_buf_release() to
release it in failed path.

Signed-off-by: Ding Hui <dinghui@sangfor.com.cn>
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
fs/cifs/sess.c

index b63f00894b0c31540af662c843a0620437e3bc26..3cfe07e4aeeb216940885be69d452a37a1d081c3 100644 (file)
@@ -889,7 +889,7 @@ sess_alloc_buffer(struct sess_data *sess_data, int wct)
        return 0;
 
 out_free_smb_buf:
-       kfree(smb_buf);
+       cifs_small_buf_release(smb_buf);
        sess_data->iov[0].iov_base = NULL;
        sess_data->iov[0].iov_len = 0;
        sess_data->buf0_type = CIFS_NO_BUFFER;