[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