summaryrefslogtreecommitdiff
path: root/librpc/rpc
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2015-02-14 16:30:33 +0100
committerJosé A. Rivera <jarrpa@samba.org>2015-06-19 20:17:23 +0200
commitf89e9bd47b98f9dbe94ffff13b7d9d4f08b7f11a (patch)
treeb9a5d2d6cf07bc1e9fd0958b6e006c1deebab982 /librpc/rpc
parent893b5f81441bbc98ef403855ec8e2e39569479d2 (diff)
downloadsamba-f89e9bd47b98f9dbe94ffff13b7d9d4f08b7f11a.tar.gz
rpc: Simplify dcerpc_binding_handle_raw_call()
Align it with dcerpc_binding_handle_call() Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jose A. Rivera <jarrpa@samba.org> Autobuild-User(master): José A. Rivera <jarrpa@samba.org> Autobuild-Date(master): Fri Jun 19 20:17:24 CEST 2015 on sn-devel-104
Diffstat (limited to 'librpc/rpc')
-rw-r--r--librpc/rpc/binding_handle.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/librpc/rpc/binding_handle.c b/librpc/rpc/binding_handle.c
index 5a9414464e2..f5e043d382d 100644
--- a/librpc/rpc/binding_handle.c
+++ b/librpc/rpc/binding_handle.c
@@ -224,7 +224,7 @@ NTSTATUS dcerpc_binding_handle_raw_call(struct dcerpc_binding_handle *h,
TALLOC_CTX *frame = talloc_stackframe();
struct tevent_context *ev;
struct tevent_req *subreq;
- NTSTATUS status;
+ NTSTATUS status = NT_STATUS_NO_MEMORY;
/*
* TODO: allow only one sync call
@@ -236,8 +236,7 @@ NTSTATUS dcerpc_binding_handle_raw_call(struct dcerpc_binding_handle *h,
ev = samba_tevent_context_init(frame);
}
if (ev == NULL) {
- talloc_free(frame);
- return NT_STATUS_NO_MEMORY;
+ goto fail;
}
subreq = dcerpc_binding_handle_raw_call_send(frame, ev,
@@ -246,13 +245,11 @@ NTSTATUS dcerpc_binding_handle_raw_call(struct dcerpc_binding_handle *h,
in_data,
in_length);
if (subreq == NULL) {
- talloc_free(frame);
- return NT_STATUS_NO_MEMORY;
+ goto fail;
}
if (!tevent_req_poll_ntstatus(subreq, ev, &status)) {
- talloc_free(frame);
- return status;
+ goto fail;
}
status = dcerpc_binding_handle_raw_call_recv(subreq,
@@ -260,13 +257,9 @@ NTSTATUS dcerpc_binding_handle_raw_call(struct dcerpc_binding_handle *h,
out_data,
out_length,
out_flags);
- if (!NT_STATUS_IS_OK(status)) {
- talloc_free(frame);
- return status;
- }
-
+fail:
TALLOC_FREE(frame);
- return NT_STATUS_OK;
+ return status;
}
struct dcerpc_binding_handle_disconnect_state {