From d08a6b4200411114c0b9a8fa46dd6acd91d47476 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 23 Oct 2020 11:56:19 +0200 Subject: librpc/dcesrv_core: let dcesrv_call_dispatch_local() call context->iface->reply() This is needed in order to get NDR_PRINT_FUNCTION_DEBUG(..., NDR_OUT) called. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14551 Signed-off-by: Stefan Metzmacher Reviewed-by: Samuel Cabrero Autobuild-User(master): Samuel Cabrero Autobuild-Date(master): Fri Oct 23 17:24:37 UTC 2020 on sn-devel-184 --- librpc/rpc/dcesrv_core.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'librpc') diff --git a/librpc/rpc/dcesrv_core.c b/librpc/rpc/dcesrv_core.c index 35d7947f438..064ad38b8d6 100644 --- a/librpc/rpc/dcesrv_core.c +++ b/librpc/rpc/dcesrv_core.c @@ -3011,6 +3011,16 @@ _PUBLIC_ NTSTATUS dcesrv_call_dispatch_local(struct dcesrv_call_state *call) /* This can never go async for now! */ SMB_ASSERT(!(call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC)); + /* call the reply function */ + status = call->context->iface->reply(call, call, call->r); + if (!NT_STATUS_IS_OK(status)) { + DBG_ERR("DCE/RPC fault in call %s:%02X - %s\n", + call->context->iface->name, + call->pkt.u.request.opnum, + dcerpc_errstr(call, call->fault_code)); + return dcerpc_fault_to_nt_status(call->fault_code); + } + push = ndr_push_init_ctx(call); if (push == NULL) { return NT_STATUS_NO_MEMORY; -- cgit v1.2.1