From bd29c8e671f385684aa563ce12323a77c444f120 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 22 Dec 2010 10:29:14 +0000 Subject: [PATCH] fix segv --- src/core/core_api.c | 8 -------- src/core/gnunet-service-core.c | 15 ++++++++------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/core/core_api.c b/src/core/core_api.c index 19d4bf49b..3eb12f25c 100644 --- a/src/core/core_api.c +++ b/src/core/core_api.c @@ -1169,14 +1169,6 @@ main_notify_handler (void *cls, return; } smr = (const struct SendMessageReady *) msg; - if (0 == memcmp (&h->me, - &smr->peer, - sizeof (struct GNUNET_PeerIdentity))) - { - /* self-change!? */ - GNUNET_break (0); - return; - } pr = GNUNET_CONTAINER_multihashmap_get (h->peers, &smr->peer.hashPubKey); if (pr == NULL) diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index 8bac3e7e7..c8662d56e 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c @@ -1113,12 +1113,15 @@ schedule_peer_messages (struct Neighbour *n) } if (car == NULL) return; /* no pending requests */ + GNUNET_CONTAINER_DLL_remove (n->active_client_request_head, + n->active_client_request_tail, + car); } else { car = n->active_client_request_head; if (car == NULL) - return; + return; /* no pending requests */ } #if DEBUG_CORE_CLIENT GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, @@ -1126,12 +1129,10 @@ schedule_peer_messages (struct Neighbour *n) GNUNET_i2s (&n->peer)); #endif c = car->client; - GNUNET_CONTAINER_DLL_remove (n->active_client_request_head, - n->active_client_request_tail, - car); - GNUNET_CONTAINER_multihashmap_remove (c->requests, - &n->peer.hashPubKey, - car); + GNUNET_assert (GNUNET_YES == + GNUNET_CONTAINER_multihashmap_remove (c->requests, + &n->peer.hashPubKey, + car)); smr.header.size = htons (sizeof (struct SendMessageReady)); smr.header.type = htons (GNUNET_MESSAGE_TYPE_CORE_SEND_READY); smr.size = htons (car->msize); -- 2.25.1