From: Stefan Metzmacher Date: Wed, 18 Sep 2024 21:25:34 +0000 (+0200) Subject: s4:librpc/rpc: call dcerpc_binding_set_abstract_syntax after bind or alter context X-Git-Tag: samba-4.21.7~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2d951bddd4b2b02fc750b3aaae782750de85567;p=thirdparty%2Fsamba.git s4:librpc/rpc: call dcerpc_binding_set_abstract_syntax after bind or alter context Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme (cherry picked from commit e8d59ca3361bcdaf4db729eeb4a71f714bd9feda) --- diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c index dafe1feb9a7..6600febf068 100644 --- a/source4/librpc/rpc/dcerpc.c +++ b/source4/librpc/rpc/dcerpc.c @@ -1357,6 +1357,10 @@ static void dcerpc_bind_recv_handler(struct rpc_request *subreq, if (tevent_req_nterror(req, status)) { return; } + status = dcerpc_binding_set_abstract_syntax(b, &state->p->syntax); + if (tevent_req_nterror(req, status)) { + return; + } tevent_req_done(req); } @@ -2307,6 +2311,7 @@ static void dcerpc_alter_context_recv_handler(struct rpc_request *subreq, struct dcerpc_alter_context_state); struct dcecli_connection *conn = state->p->conn; struct dcecli_security *sec = &conn->security_state; + struct dcerpc_binding *b = NULL; NTSTATUS status; /* @@ -2384,6 +2389,15 @@ static void dcerpc_alter_context_recv_handler(struct rpc_request *subreq, } } + /* + * We're the owner of the binding, so we're allowed to modify it. + */ + b = discard_const_p(struct dcerpc_binding, state->p->binding); + status = dcerpc_binding_set_abstract_syntax(b, &state->p->syntax); + if (tevent_req_nterror(req, status)) { + return; + } + tevent_req_done(req); }