OSDN Git Service

ksmbd: validate smb request protocol id
[tomoyo/tomoyo-test1.git] / fs / smb / server / connection.c
index e11d4a1..2a717d1 100644 (file)
@@ -364,8 +364,6 @@ int ksmbd_conn_handler_loop(void *p)
                        break;
 
                memcpy(conn->request_buf, hdr_buf, sizeof(hdr_buf));
-               if (!ksmbd_smb_request(conn))
-                       break;
 
                /*
                 * We already read 4 bytes to find out PDU size, now
@@ -383,6 +381,9 @@ int ksmbd_conn_handler_loop(void *p)
                        continue;
                }
 
+               if (!ksmbd_smb_request(conn))
+                       break;
+
                if (((struct smb2_hdr *)smb2_get_msg(conn->request_buf))->ProtocolId ==
                    SMB2_PROTO_NUMBER) {
                        if (pdu_size < SMB2_MIN_SUPPORTED_HEADER_SIZE)