Correct connection releases on error path in RPC binding open
Mike Hearn
mike at navi.cx
Tue Jun 15 17:34:14 CDT 2004
Mike Hearn <mike at navi.cx>
Correct connection releases on error path in RPCRT4_OpenBinding
Index: dlls/rpcrt4/rpc_binding.c
===================================================================
RCS file: /home/wine/wine/dlls/rpcrt4/rpc_binding.c,v
retrieving revision 1.25
diff -u -p -r1.25 rpc_binding.c
--- dlls/rpcrt4/rpc_binding.c 17 May 2004 21:08:31 -0000 1.25
+++ dlls/rpcrt4/rpc_binding.c 15 Jun 2004 22:33:59 -0000
@@ -514,6 +514,8 @@ RPC_STATUS RPCRT4_OpenBinding(RpcBinding
if (!Binding->server && Binding->FromConn &&
memcmp(&Binding->FromConn->ActiveInterface, InterfaceId,
sizeof(RPC_SYNTAX_IDENTIFIER))) {
+
+ TRACE("releasing pre-existing connection\n");
RPCRT4_ReleaseConnection(Binding->FromConn);
Binding->FromConn = NULL;
} else {
@@ -577,13 +579,13 @@ RPC_STATUS RPCRT4_OpenBinding(RpcBinding
response_hdr->common.rpc_ver_minor != RPC_VER_MINOR ||
response_hdr->common.ptype != PKT_BIND_ACK) {
WARN("invalid protocol version or rejection packet\n");
- RPCRT4_ReleaseConnection(Binding->FromConn);
+ RPCRT4_ReleaseConnection(*Connection);
return RPC_S_PROTOCOL_ERROR;
}
if (response_hdr->bind_ack.max_tsize < RPC_MIN_PACKET_SIZE) {
WARN("server doesn't allow large enough packets\n");
- RPCRT4_ReleaseConnection(Binding->FromConn);
+ RPCRT4_ReleaseConnection(*Connection);
return RPC_S_PROTOCOL_ERROR;
}
More information about the wine-patches
mailing list