svn commit: samba r11871 - in branches/SAMBA_4_0/source/librpc/rpc: .

tridge at samba.org tridge at samba.org
Wed Nov 23 00:51:25 GMT 2005


Author: tridge
Date: 2005-11-23 00:51:24 +0000 (Wed, 23 Nov 2005)
New Revision: 11871

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=11871

Log:

fixed a problem volker found with the async bind code, and a callback
destroying the dcerpc pipe

Modified:
   branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c


Changeset:
Modified: branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c
===================================================================
--- branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c	2005-11-23 00:30:58 UTC (rev 11870)
+++ branches/SAMBA_4_0/source/librpc/rpc/dcerpc.c	2005-11-23 00:51:24 UTC (rev 11871)
@@ -568,10 +568,12 @@
 	case DCERPC_PKT_BIND_ACK:
 	case DCERPC_PKT_BIND_NAK:
 		dcerpc_bind_recv_data(conn, &pkt);
+		data_blob_free(blob);
 		break;
 
 	case DCERPC_PKT_ALTER_RESP:
 		dcerpc_alter_recv_data(conn, &pkt);
+		data_blob_free(blob);
 		break;
 
 	default:
@@ -579,8 +581,6 @@
 		dcerpc_request_recv_data(conn, blob, &pkt);
 		break;
 	}
-
-	data_blob_free(blob);
 }
 
 
@@ -857,9 +857,12 @@
 
 	if (req == NULL) {
 		DEBUG(2,("dcerpc_request: unmatched call_id %u in response packet\n", pkt->call_id));
+		data_blob_free(raw_packet);
 		return;
 	}
 
+	talloc_steal(req, raw_packet->data);
+
 	if (pkt->ptype == DCERPC_PKT_FAULT) {
 		DEBUG(5,("rpc fault: %s\n", dcerpc_errstr(c, pkt->u.fault.status)));
 		req->fault_code = pkt->u.fault.status;



More information about the samba-cvs mailing list