From: Stefan Metzmacher Date: Fri, 13 Oct 2023 07:11:51 +0000 (+0200) Subject: s4:rpc_server/epmapper: check dcerpc_floor_get_uuid_full() result in dcesrv_epm_Map() X-Git-Tag: talloc-2.4.2~1241 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=53e4fe647ec3f840836340cf9eac4f79b8794aad;p=thirdparty%2Fsamba.git s4:rpc_server/epmapper: check dcerpc_floor_get_uuid_full() result in dcesrv_epm_Map() This already checks for EPM_PROTOCOL_UUID and simplifies the logic. Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- diff --git a/source4/rpc_server/epmapper/rpc_epmapper.c b/source4/rpc_server/epmapper/rpc_epmapper.c index 43ccc342a1a..09aa8ae87a0 100644 --- a/source4/rpc_server/epmapper/rpc_epmapper.c +++ b/source4/rpc_server/epmapper/rpc_epmapper.c @@ -193,6 +193,7 @@ static error_status_t dcesrv_epm_Map(struct dcesrv_call_state *dce_call, TALLOC_ struct epm_floor *floors; enum dcerpc_transport_t transport; struct ndr_syntax_id ndr_syntax; + NTSTATUS status; count = build_ep_list(mem_ctx, dce_call->conn->dce_ctx->endpoint_list, &eps); @@ -218,10 +219,12 @@ static error_status_t dcesrv_epm_Map(struct dcesrv_call_state *dce_call, TALLOC_ floors = r->in.map_tower->tower.floors; - dcerpc_floor_get_uuid_full(&r->in.map_tower->tower.floors[1], &ndr_syntax); + status = dcerpc_floor_get_uuid_full(&floors[1], &ndr_syntax); + if (!NT_STATUS_IS_OK(status)) { + goto failed; + } - if (floors[1].lhs.protocol != EPM_PROTOCOL_UUID || - !ndr_syntax_id_equal(&ndr_syntax, &ndr_transfer_syntax_ndr)) { + if (!ndr_syntax_id_equal(&ndr_syntax, &ndr_transfer_syntax_ndr)) { goto failed; }