mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
s4:rpc_server: parse auth data only for BIND,ALTER_REQ,AUTH3
We should tell dcerpc_pull_auth_trailer() that we only want auth data. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11982 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
This commit is contained in:
parent
d491c6c496
commit
505a4e68d9
@ -44,7 +44,6 @@ bool dcesrv_auth_bind(struct dcesrv_call_state *call)
|
|||||||
struct dcesrv_connection *dce_conn = call->conn;
|
struct dcesrv_connection *dce_conn = call->conn;
|
||||||
struct dcesrv_auth *auth = &dce_conn->auth_state;
|
struct dcesrv_auth *auth = &dce_conn->auth_state;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
uint32_t auth_length;
|
|
||||||
|
|
||||||
if (pkt->auth_length == 0) {
|
if (pkt->auth_length == 0) {
|
||||||
auth->auth_type = DCERPC_AUTH_TYPE_NONE;
|
auth->auth_type = DCERPC_AUTH_TYPE_NONE;
|
||||||
@ -55,7 +54,7 @@ bool dcesrv_auth_bind(struct dcesrv_call_state *call)
|
|||||||
|
|
||||||
status = dcerpc_pull_auth_trailer(pkt, call, &pkt->u.bind.auth_info,
|
status = dcerpc_pull_auth_trailer(pkt, call, &pkt->u.bind.auth_info,
|
||||||
&call->in_auth_info,
|
&call->in_auth_info,
|
||||||
&auth_length, false);
|
NULL, true);
|
||||||
if (!NT_STATUS_IS_OK(status)) {
|
if (!NT_STATUS_IS_OK(status)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -241,7 +240,6 @@ bool dcesrv_auth_auth3(struct dcesrv_call_state *call)
|
|||||||
struct ncacn_packet *pkt = &call->pkt;
|
struct ncacn_packet *pkt = &call->pkt;
|
||||||
struct dcesrv_connection *dce_conn = call->conn;
|
struct dcesrv_connection *dce_conn = call->conn;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
uint32_t auth_length;
|
|
||||||
|
|
||||||
if (pkt->auth_length == 0) {
|
if (pkt->auth_length == 0) {
|
||||||
return false;
|
return false;
|
||||||
@ -257,7 +255,7 @@ bool dcesrv_auth_auth3(struct dcesrv_call_state *call)
|
|||||||
}
|
}
|
||||||
|
|
||||||
status = dcerpc_pull_auth_trailer(pkt, call, &pkt->u.auth3.auth_info,
|
status = dcerpc_pull_auth_trailer(pkt, call, &pkt->u.auth3.auth_info,
|
||||||
&call->in_auth_info, &auth_length, true);
|
&call->in_auth_info, NULL, true);
|
||||||
if (!NT_STATUS_IS_OK(status)) {
|
if (!NT_STATUS_IS_OK(status)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -324,7 +322,6 @@ bool dcesrv_auth_alter(struct dcesrv_call_state *call)
|
|||||||
struct ncacn_packet *pkt = &call->pkt;
|
struct ncacn_packet *pkt = &call->pkt;
|
||||||
struct dcesrv_connection *dce_conn = call->conn;
|
struct dcesrv_connection *dce_conn = call->conn;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
uint32_t auth_length;
|
|
||||||
|
|
||||||
/* on a pure interface change there is no auth blob */
|
/* on a pure interface change there is no auth blob */
|
||||||
if (pkt->auth_length == 0) {
|
if (pkt->auth_length == 0) {
|
||||||
@ -344,7 +341,7 @@ bool dcesrv_auth_alter(struct dcesrv_call_state *call)
|
|||||||
}
|
}
|
||||||
|
|
||||||
status = dcerpc_pull_auth_trailer(pkt, call, &pkt->u.alter.auth_info,
|
status = dcerpc_pull_auth_trailer(pkt, call, &pkt->u.alter.auth_info,
|
||||||
&call->in_auth_info, &auth_length, true);
|
&call->in_auth_info, NULL, true);
|
||||||
if (!NT_STATUS_IS_OK(status)) {
|
if (!NT_STATUS_IS_OK(status)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user