From: Volker Lendecke Date: Wed, 20 Jan 2021 13:30:57 +0000 (+0100) Subject: rpc_server: Introduce "goto nomem;" to dcesrv_endpoint_connect() X-Git-Tag: tevent-0.11.0~1877 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=08757d213ee016dfa958d393ef41d7aa66756132;p=thirdparty%2Fsamba.git rpc_server: Introduce "goto nomem;" to dcesrv_endpoint_connect() Avoid the control-flow changing NT_STATUS_HAVE_NO_MEMORY macro. Signed-off-by: Volker Lendecke Reviewed-by: Samuel Cabrero --- diff --git a/librpc/rpc/dcesrv_core.c b/librpc/rpc/dcesrv_core.c index a413359d985..ccfc01a57d9 100644 --- a/librpc/rpc/dcesrv_core.c +++ b/librpc/rpc/dcesrv_core.c @@ -533,14 +533,16 @@ _PUBLIC_ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx, struct dcesrv_connection **_p) { struct dcesrv_auth *auth = NULL; - struct dcesrv_connection *p; + struct dcesrv_connection *p = NULL; if (!session_info) { return NT_STATUS_ACCESS_DENIED; } p = talloc_zero(mem_ctx, struct dcesrv_connection); - NT_STATUS_HAVE_NO_MEMORY(p); + if (p == NULL) { + goto nomem; + } p->dce_ctx = dce_ctx; p->endpoint = ep; @@ -568,14 +570,12 @@ _PUBLIC_ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx, auth = dcesrv_auth_create(p); if (auth == NULL) { - talloc_free(p); - return NT_STATUS_NO_MEMORY; + goto nomem; } auth->session_info = talloc_reference(auth, session_info); if (auth->session_info == NULL) { - talloc_free(p); - return NT_STATUS_NO_MEMORY; + goto nomem; } p->default_auth_state = auth; @@ -587,6 +587,9 @@ _PUBLIC_ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx, *_p = p; return NT_STATUS_OK; +nomem: + TALLOC_FREE(p); + return NT_STATUS_NO_MEMORY; } /*