diff options
-rw-r--r-- | source3/smbd/process.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/smbd/process.c b/source3/smbd/process.c index 177cb3cc505..7c45a648b77 100644 --- a/source3/smbd/process.c +++ b/source3/smbd/process.c @@ -1969,7 +1969,14 @@ static void process_smb(struct smbXsrv_connection *xconn, if (smbd_is_smb2_header(inbuf, nread)) { const uint8_t *inpdu = inbuf + NBT_HDR_SIZE; size_t pdulen = nread - NBT_HDR_SIZE; - smbd_smb2_process_negprot(xconn, 0, inpdu, pdulen); + NTSTATUS status = smbd_smb2_process_negprot( + xconn, + 0, + inpdu, + pdulen); + if (!NT_STATUS_IS_OK(status)) { + exit_server_cleanly("SMB2 negprot fail"); + } return; } if (nread >= smb_size && valid_smb_header(inbuf) |