summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatvey Kovalev <matvey.kovalev@ispras.ru>2025-09-25 15:12:34 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-10-15 11:58:08 +0200
commitc6b15a82a56cc9eb42c1914f32d806821164d4a5 (patch)
treeb01d7da66d44df8de2ce84ff36438e1a33881f8f
parent7eca645917bc1d68673536e2f100574e7b542929 (diff)
downloadlinux-c6b15a82a56cc9eb42c1914f32d806821164d4a5.tar.gz
linux-c6b15a82a56cc9eb42c1914f32d806821164d4a5.tar.bz2
linux-c6b15a82a56cc9eb42c1914f32d806821164d4a5.zip
ksmbd: fix error code overwriting in smb2_get_info_filesystem()
commit 88daf2f448aad05a2e6df738d66fe8b0cf85cee0 upstream. If client doesn't negotiate with SMB3.1.1 POSIX Extensions, then proper error code won't be returned due to overwriting. Return error immediately. Found by Linux Verification Center (linuxtesting.org) with SVACE. Fixes: e2f34481b24db ("cifsd: add server-side procedures for SMB3") Cc: stable@vger.kernel.org Signed-off-by: Matvey Kovalev <matvey.kovalev@ispras.ru> Acked-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/smb/server/smb2pdu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/smb/server/smb2pdu.c b/fs/smb/server/smb2pdu.c
index ae47450dc40f..93c31feab356 100644
--- a/fs/smb/server/smb2pdu.c
+++ b/fs/smb/server/smb2pdu.c
@@ -5596,7 +5596,8 @@ static int smb2_get_info_filesystem(struct ksmbd_work *work,
if (!work->tcon->posix_extensions) {
pr_err("client doesn't negotiate with SMB3.1.1 POSIX Extensions\n");
- rc = -EOPNOTSUPP;
+ path_put(&path);
+ return -EOPNOTSUPP;
} else {
info = (struct filesystem_posix_info *)(rsp->Buffer);
info->OptimalTransferSize = cpu_to_le32(stfs.f_bsize);