# HG changeset patch # User Senko Rasic # Date 1191327064 -7200 # Node ID 0bd1892a18d322e7bc7878f54d33e078a16d7fd5 # Parent 4e0421c44a734c5bbc66095571e6863220cd85d1 Fix another crash in asyncns cancel code diff -r 4e0421c44a73 -r 0bd1892a18d3 loudmouth/lm-socket.c --- a/loudmouth/lm-socket.c Tue Sep 25 11:08:29 2007 +0200 +++ b/loudmouth/lm-socket.c Tue Oct 02 14:11:04 2007 +0200 @@ -792,8 +792,9 @@ return; if (socket->asyncns_ctx) { - g_assert (socket->resolv_query != NULL); - asyncns_cancel (socket->asyncns_ctx, socket->resolv_query); + if (socket->resolv_query) + asyncns_cancel (socket->asyncns_ctx, socket->resolv_query); + _asyncns_done (socket); } } @@ -847,11 +848,13 @@ switch ((guint) asyncns_getuserdata (socket->asyncns_ctx, socket->resolv_query)) { case PHASE_1: err = asyncns_res_done (socket->asyncns_ctx, socket->resolv_query, &srv_ans); + socket->resolv_query = NULL; _lm_socket_create_phase1 (socket, (err) ? NULL : srv_ans, err); return TRUE; break; case PHASE_2: err = asyncns_getaddrinfo_done (socket->asyncns_ctx, socket->resolv_query, &ans); + socket->resolv_query = NULL; _lm_socket_create_phase2 (socket, (err) ? NULL : ans); _asyncns_done (socket); return FALSE;