1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

r4095: smbsrv_terminate_connection() doesn't exit() in single processor mode, so after we

call it we need to return, and not continue processing packets
(This used to be commit 33e4cee17d)
This commit is contained in:
Andrew Tridgell 2004-12-08 08:09:42 +00:00 committed by Gerald (Jerry) Carter
parent 57314e0df3
commit 071439c1e1
3 changed files with 11 additions and 2 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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;