From: Nathan S. Evans Date: Mon, 22 Nov 2010 16:47:16 +0000 (+0000) Subject: invariant pr->pending_head <> NULL still getting violated X-Git-Tag: initial-import-from-subversion-38251~19662 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=568ef6e60686cc58bbb6b193fe3789910aceff6e;p=oweals%2Fgnunet.git invariant pr->pending_head <> NULL still getting violated --- diff --git a/src/core/core_api.c b/src/core/core_api.c index f687cd265..696948682 100644 --- a/src/core/core_api.c +++ b/src/core/core_api.c @@ -1520,13 +1520,21 @@ GNUNET_CORE_notify_transmit_ready (struct GNUNET_CORE_Handle *handle, /* Order entries by deadline, but SKIP 'HEAD' if we're in the 'ready_peer_*' DLL */ - pos = pr->pending_head; - if ( (pr->prev != NULL) || - (pr->next != NULL) || - (pr == handle->ready_peer_head) ) + /* FIXME: again, pr->pending_head is NULL after a reconnect_later call */ + if (pr->pending_head != NULL) + { + pos = pr->pending_head; + if ( (pr->prev != NULL) || + (pr->next != NULL) || + (pr == handle->ready_peer_head) ) + { + GNUNET_assert (pos != NULL); + pos = pos->next; /* skip head */ + } + } + else { - GNUNET_assert (pos != NULL); - pos = pos->next; /* skip head */ + GNUNET_break(0); } /* insertion sort */ @@ -1587,7 +1595,7 @@ GNUNET_CORE_notify_transmit_ready_cancel (struct GNUNET_CORE_TransmitHandle (pr == h->ready_peer_head) ) { /* the request that was 'approved' by core was - cancelled before it could be transmitted; remove + canceled before it could be transmitted; remove us from the 'ready' list */ GNUNET_CONTAINER_DLL_remove (h->ready_peer_head, h->ready_peer_tail,