diff options
author | Volker Lendecke <vl@samba.org> | 2021-01-20 14:30:57 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2021-01-28 16:58:35 +0000 |
commit | 08757d213ee016dfa958d393ef41d7aa66756132 (patch) | |
tree | bd68a31dc36ff1b2909db814a671999c0fd87d9f /librpc | |
parent | c1614edf292ce907b5cecad56ad1643c51256269 (diff) | |
download | samba-08757d213ee016dfa958d393ef41d7aa66756132.tar.gz |
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 <vl@samba.org>
Reviewed-by: Samuel Cabrero <scabrero@samba.org>
Diffstat (limited to 'librpc')
-rw-r--r-- | librpc/rpc/dcesrv_core.c | 15 |
1 files changed, 9 insertions, 6 deletions
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; } /* |