[PATCH] Simplify dcerpc_binding_handle_raw_call
Volker Lendecke
Volker.Lendecke at SerNet.DE
Thu Jun 18 13:47:40 MDT 2015
Hi!
This is the typical way we handle the sync wrappers these
days. I just came across this a while ago.
Review&push appreciated!
Thanks,
Volker
--
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de
-------------- next part --------------
From 1d2fc9fb6a73b09b35d84b69b63d9ec793121920 Mon Sep 17 00:00:00 2001
From: Volker Lendecke <vl at samba.org>
Date: Sat, 14 Feb 2015 16:30:33 +0100
Subject: [PATCH] rpc: Simplify dcerpc_binding_handle_raw_call()
Align it with dcerpc_binding_handle_call()
Signed-off-by: Volker Lendecke <vl at samba.org>
---
librpc/rpc/binding_handle.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/librpc/rpc/binding_handle.c b/librpc/rpc/binding_handle.c
index 5a94144..f5e043d 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 {
--
1.9.1
More information about the samba-technical
mailing list