ksmbd: fix read on the uninitialized send_ctx
authorNamjae Jeon <namjae.jeon@samsung.com>
Wed, 7 Jul 2021 05:56:44 +0000 (14:56 +0900)
committerNamjae Jeon <namjae.jeon@samsung.com>
Thu, 8 Jul 2021 06:46:11 +0000 (15:46 +0900)
If st->status is not SMB_DIRECT_CS_CONNECTED, It will jump done label
and accessing the uninitialized send_ctxi by smb_direct_flush_send_list
will cause kernel oops. This patch just return -ENOTCONN to avoid it.

Reported-by: Coverity Scan <scan-admin@coverity.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/ksmbd/transport_rdma.c

index 171fb3d..d5728c8 100644 (file)
@@ -1207,10 +1207,8 @@ static int smb_direct_writev(struct ksmbd_transport *t,
        struct kvec vec;
        struct smb_direct_send_ctx send_ctx;
 
-       if (st->status != SMB_DIRECT_CS_CONNECTED) {
-               ret = -ENOTCONN;
-               goto done;
-       }
+       if (st->status != SMB_DIRECT_CS_CONNECTED)
+               return -ENOTCONN;
 
        //FIXME: skip RFC1002 header..
        buflen -= 4;