fix segv
authorChristian Grothoff <christian@grothoff.org>
Wed, 22 Dec 2010 10:29:14 +0000 (10:29 +0000)
committerChristian Grothoff <christian@grothoff.org>
Wed, 22 Dec 2010 10:29:14 +0000 (10:29 +0000)
src/core/core_api.c
src/core/gnunet-service-core.c

index 19d4bf49b470fb682d5c85440dfcc0a652f488f6..3eb12f25ceebb093e261c5abf9cc7af3b466c5ed 100644 (file)
@@ -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)
index 8bac3e7e7d2aba435c638983f40af385dc4ffbd7..c8662d56ee481eb7c1d4220f2ec3d2df382188f2 100644 (file)
@@ -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);