mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
s3: smbd: Allow smbd_smb2_process_negprot() to return NTSTATUS as it can fail.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14205 Signed-off-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
parent
eddd6c5267
commit
868bc05cf5
@ -234,7 +234,7 @@ NTSTATUS smbd_add_connection(struct smbXsrv_client *client, int sock_fd,
|
||||
|
||||
void reply_smb2002(struct smb_request *req, uint16_t choice);
|
||||
void reply_smb20ff(struct smb_request *req, uint16_t choice);
|
||||
void smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
|
||||
NTSTATUS smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
|
||||
uint64_t expected_seq_low,
|
||||
const uint8_t *inpdu, size_t size);
|
||||
|
||||
|
@ -3629,7 +3629,7 @@ static NTSTATUS smbd_smb2_request_next_incoming(struct smbXsrv_connection *xconn
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
void smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
|
||||
NTSTATUS smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
|
||||
uint64_t expected_seq_low,
|
||||
const uint8_t *inpdu, size_t size)
|
||||
{
|
||||
@ -3643,25 +3643,25 @@ void smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
|
||||
status = smbd_initialize_smb2(xconn, expected_seq_low);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
smbd_server_connection_terminate(xconn, nt_errstr(status));
|
||||
return;
|
||||
return status;
|
||||
}
|
||||
|
||||
status = smbd_smb2_request_create(xconn, inpdu, size, &req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
smbd_server_connection_terminate(xconn, nt_errstr(status));
|
||||
return;
|
||||
return status;
|
||||
}
|
||||
|
||||
status = smbd_smb2_request_validate(req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
smbd_server_connection_terminate(xconn, nt_errstr(status));
|
||||
return;
|
||||
return status;
|
||||
}
|
||||
|
||||
status = smbd_smb2_request_setup_out(req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
smbd_server_connection_terminate(xconn, nt_errstr(status));
|
||||
return;
|
||||
return status;
|
||||
}
|
||||
|
||||
#ifdef WITH_PROFILE
|
||||
@ -3676,16 +3676,17 @@ void smbd_smb2_process_negprot(struct smbXsrv_connection *xconn,
|
||||
status = smbd_smb2_request_dispatch(req);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
smbd_server_connection_terminate(xconn, nt_errstr(status));
|
||||
return;
|
||||
return status;
|
||||
}
|
||||
|
||||
status = smbd_smb2_request_next_incoming(xconn);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
smbd_server_connection_terminate(xconn, nt_errstr(status));
|
||||
return;
|
||||
return status;
|
||||
}
|
||||
|
||||
sconn->num_requests++;
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
static int socket_error_from_errno(int ret,
|
||||
|
Loading…
Reference in New Issue
Block a user