summaryrefslogtreecommitdiff
path: root/librpc
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2021-01-20 14:30:57 +0100
committerVolker Lendecke <vl@samba.org>2021-01-28 16:58:35 +0000
commit08757d213ee016dfa958d393ef41d7aa66756132 (patch)
treebd68a31dc36ff1b2909db814a671999c0fd87d9f /librpc
parentc1614edf292ce907b5cecad56ad1643c51256269 (diff)
downloadsamba-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.c15
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;
}
/*