FAILED: patch "[PATCH] ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails" failed to apply to 5.15-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 108a020c64434fed4b69762879d78cd24088b4c7
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024021954-gallows-product-204d@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
108a020c6443 ("ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails")1903e6d05781 ("ksmbd: fix potential double free on smb2_read_pipe() error path")e2b76ab8b5c9 ("ksmbd: add support for read compound")e202a1e8634b ("ksmbd: no response from compound read")7b7d709ef7cf ("ksmbd: add missing compound request handing in some commands")81a94b27847f ("ksmbd: use kvzalloc instead of kvmalloc")38c8a9a52082 ("smb: move client and server files to common directory fs/smb")30210947a343 ("ksmbd: fix racy issue under cocurrent smb2 tree disconnect")abcc506a9a71 ("ksmbd: fix racy issue from smb2 close and logoff with multichannel")ea174a918939 ("ksmbd: destroy expired sessions")f5c779b7ddbd ("ksmbd: fix racy issue from session setup and logoff")74d7970febf7 ("ksmbd: fix racy issue from using ->d_parent and ->d_name")34e8ccf9ce24 ("ksmbd: set NegotiateContextCount once instead of every inc")42bc6793e452 ("Merge tag 'pull-lock_rename_child' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs into ksmbd-for-next")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 108a020c64434fed4b69762879d78cd24088b4c7 Mon Sep 17 00:00:00 2001
From: Fedor Pchelkin <[email protected]>
Date: Mon, 5 Feb 2024 14:19:16 +0300
Subject: [PATCH] ksmbd: free aux buffer if ksmbd_iov_pin_rsp_read fails
ksmbd_iov_pin_rsp_read() doesn't free the provided aux buffer if it fails. Seems to be the caller's responsibility to clear the buffer in error case.
Found by Linux Verification Center (linuxtesting.org).
fs/smb/server/smb2pdu.c +6 -2
@@ -6173,8 +6173,10 @@ static noinline int smb2_read_pipe(struct ksmbd_work *work) err =ksmbd_iov_pin_rsp_read (work, (void *)rsp, offsetof(struct smb2_read_rsp , Buffer), aux_payload_buf, nbytes); -if (err) +if (err) { +kvfree (aux_payload_buf); goto out; + }kvfree (rpc_resp); }else { err = ksmbd_iov_pin_rsp(work, (void *)rsp,
@@ -6384,8 +6386,10 @@ int smb2_read(struct ksmbd_work *work) err =ksmbd_iov_pin_rsp_read (work, (void *)rsp, offsetof(struct smb2_read_rsp , Buffer), aux_payload_buf, nbytes); -if (err) +if (err) { +kvfree (aux_payload_buf); goto out; + }ksmbd_fd_put (work, fp);return 0 ;