summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/smb_server/negprot.c4
-rw-r--r--source4/smb_server/reply.c7
-rw-r--r--source4/smb_server/request.c2
3 files changed, 11 insertions, 2 deletions
diff --git a/source4/smb_server/negprot.c b/source4/smb_server/negprot.c
index 1c2e1ff7f8..e903969aa7 100644
--- a/source4/smb_server/negprot.c
+++ b/source4/smb_server/negprot.c
@@ -63,6 +63,7 @@ static void reply_corep(struct smbsrv_request *req, uint16_t choice)
if (req->smb_conn->signing.mandatory_signing) {
smbsrv_terminate_connection(req->smb_conn,
"CORE does not support SMB signing, and it is mandetory\n");
+ return;
}
req_send_reply(req);
@@ -95,6 +96,7 @@ static void reply_coreplus(struct smbsrv_request *req, uint16_t choice)
if (req->smb_conn->signing.mandatory_signing) {
smbsrv_terminate_connection(req->smb_conn,
"COREPLUS does not support SMB signing, and it is mandetory\n");
+ return;
}
req_send_reply(req);
@@ -145,6 +147,7 @@ static void reply_lanman1(struct smbsrv_request *req, uint16_t choice)
if (req->smb_conn->signing.mandatory_signing) {
smbsrv_terminate_connection(req->smb_conn,
"LANMAN1 does not support SMB signing, and it is mandetory\n");
+ return;
}
req_send_reply(req);
@@ -193,6 +196,7 @@ static void reply_lanman2(struct smbsrv_request *req, uint16_t choice)
if (req->smb_conn->signing.mandatory_signing) {
smbsrv_terminate_connection(req->smb_conn,
"LANMAN2 does not support SMB signing, and it is mandetory\n");
+ return;
}
req_send_reply(req);
diff --git a/source4/smb_server/reply.c b/source4/smb_server/reply.c
index d81b2bfeef..708dae05ff 100644
--- a/source4/smb_server/reply.c
+++ b/source4/smb_server/reply.c
@@ -2378,14 +2378,17 @@ void reply_special(struct smbsrv_request *req)
switch (msg_type) {
case 0x81: /* session request */
if (req->smb_conn->negotiate.done_nbt_session) {
- smbsrv_terminate_connection(req->smb_conn, "multiple session request not permitted");
+ smbsrv_terminate_connection(req->smb_conn,
+ "multiple session request not permitted");
+ return;
}
SCVAL(buf,0,0x82);
SCVAL(buf,3,0);
DEBUG(0,("REWRITE: not parsing netbios names in NBT session request!\n"));
- /* TODO: store the name for the session setup 'remote machine' code, as well as smbstatus */
+ /* TODO: store the name for the session setup 'remote
+ machine' code, as well as smbstatus */
req->smb_conn->negotiate.done_nbt_session = True;
diff --git a/source4/smb_server/request.c b/source4/smb_server/request.c
index 4e63acdd92..7f13998605 100644
--- a/source4/smb_server/request.c
+++ b/source4/smb_server/request.c
@@ -86,6 +86,7 @@ static void req_setup_chain_reply(struct smbsrv_request *req, uint_t wct, uint_t
req->out.buffer = talloc_realloc(req, req->out.buffer, req->out.allocated);
if (!req->out.buffer) {
smbsrv_terminate_connection(req->smb_conn, "allocation failed");
+ return;
}
req->out.hdr = req->out.buffer + NBT_HDR_SIZE;
@@ -120,6 +121,7 @@ void req_setup_reply(struct smbsrv_request *req, uint_t wct, uint_t buflen)
req->out.buffer = talloc(req, req->out.allocated);
if (!req->out.buffer) {
smbsrv_terminate_connection(req->smb_conn, "allocation failed");
+ return;
}
req->out.hdr = req->out.buffer + NBT_HDR_SIZE;