r22534: don't remove socket and fd_event before we told the
[sfrench/samba-autobuild/.git] / source4 / librpc / rpc / dcerpc_sock.c
index e1ba2d769d9deb05b4abe844784efaf4e9551681..547b3ffb43acd72906e7dbed84afd622b69656c0 100644 (file)
@@ -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;
        }