From 9c6c917571aaf4244213f68435eb8ac2470034b3 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 27 Apr 2007 14:17:28 +0000 Subject: r22534: don't remove socket and fd_event before we told the packet layer. also fix double free (left over from cut-n-paste) metze (This used to be commit a26db7e694def6206345222a240d160fac17dd7d) --- source4/librpc/rpc/dcerpc_sock.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'source4') diff --git a/source4/librpc/rpc/dcerpc_sock.c b/source4/librpc/rpc/dcerpc_sock.c index e1ba2d769d..547b3ffb43 100644 --- a/source4/librpc/rpc/dcerpc_sock.c +++ b/source4/librpc/rpc/dcerpc_sock.c @@ -50,24 +50,22 @@ static void sock_dead(struct dcerpc_connection *p, NTSTATUS status) if (!sock) return; + if (sock->packet) { + packet_recv_disable(sock->packet); + packet_set_fde(sock->packet, NULL); + packet_set_socket(sock->packet, NULL); + } + if (sock->fde) { talloc_free(sock->fde); sock->fde = NULL; } if (sock->sock) { - talloc_free(sock->fde); - sock->fde = NULL; talloc_free(sock->sock); sock->sock = NULL; } - if (sock->packet) { - packet_recv_disable(sock->packet); - packet_set_fde(sock->packet, NULL); - packet_set_socket(sock->packet, NULL); - } - if (NT_STATUS_EQUAL(NT_STATUS_UNSUCCESSFUL, status)) { status = NT_STATUS_UNEXPECTED_NETWORK_ERROR; } -- cgit