diff mbox series

cifsd: fix an uninitialized variable in smb2_write()

Message ID YJotWR/qMDIoJAcV@mwanda
State New
Headers show
Series cifsd: fix an uninitialized variable in smb2_write() | expand

Commit Message

Dan Carpenter May 11, 2021, 7:08 a.m. UTC
If there is a permissions problem then the "fp" variable is used in the
"goto out;" without being initialized.  The correct fix is to initialize
"fp" to NULL which turns the ksmbd_fd_put(work, fp); call into a no-op.

Fixes: bb03a3d512bf ("cifsd: Call smb2_set_err_rsp() in smb2_read/smb2_write error path")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 fs/cifsd/smb2pdu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Namjae Jeon May 11, 2021, 9:10 a.m. UTC | #1
> If there is a permissions problem then the "fp" variable is used in the "goto out;" without being
> initialized.  The correct fix is to initialize "fp" to NULL which turns the ksmbd_fd_put(work, fp);
> call into a no-op.
> 
> Fixes: bb03a3d512bf ("cifsd: Call smb2_set_err_rsp() in smb2_read/smb2_write error path")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Hi Dan,

I have already applied the patch to fix this issue reported by coverity scan.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/fs/cifsd?h=next-20210511&id=9a5549727ad95a574b1d7dc60f663
250fa4b213f

Thanks!
> ---
>  fs/cifsd/smb2pdu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/cifsd/smb2pdu.c b/fs/cifsd/smb2pdu.c index d07d7c45f899..18de8a763209 100644
> --- a/fs/cifsd/smb2pdu.c
> +++ b/fs/cifsd/smb2pdu.c
> @@ -6078,7 +6078,7 @@ int smb2_write(struct ksmbd_work *work)  {
>  	struct smb2_write_req *req;
>  	struct smb2_write_rsp *rsp, *rsp_org;
> -	struct ksmbd_file *fp;
> +	struct ksmbd_file *fp = NULL;
>  	loff_t offset;
>  	size_t length;
>  	ssize_t nbytes;
> --
> 2.30.2
diff mbox series

Patch

diff --git a/fs/cifsd/smb2pdu.c b/fs/cifsd/smb2pdu.c
index d07d7c45f899..18de8a763209 100644
--- a/fs/cifsd/smb2pdu.c
+++ b/fs/cifsd/smb2pdu.c
@@ -6078,7 +6078,7 @@  int smb2_write(struct ksmbd_work *work)
 {
 	struct smb2_write_req *req;
 	struct smb2_write_rsp *rsp, *rsp_org;
-	struct ksmbd_file *fp;
+	struct ksmbd_file *fp = NULL;
 	loff_t offset;
 	size_t length;
 	ssize_t nbytes;