gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r14017 - gnunet/src/core


From: gnunet
Subject: [GNUnet-SVN] r14017 - gnunet/src/core
Date: Wed, 22 Dec 2010 11:29:14 +0100

Author: grothoff
Date: 2010-12-22 11:29:14 +0100 (Wed, 22 Dec 2010)
New Revision: 14017

Modified:
   gnunet/src/core/core_api.c
   gnunet/src/core/gnunet-service-core.c
Log:
fix segv

Modified: gnunet/src/core/core_api.c
===================================================================
--- gnunet/src/core/core_api.c  2010-12-22 09:58:15 UTC (rev 14016)
+++ gnunet/src/core/core_api.c  2010-12-22 10:29:14 UTC (rev 14017)
@@ -1169,14 +1169,6 @@
          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)

Modified: gnunet/src/core/gnunet-service-core.c
===================================================================
--- gnunet/src/core/gnunet-service-core.c       2010-12-22 09:58:15 UTC (rev 
14016)
+++ gnunet/src/core/gnunet-service-core.c       2010-12-22 10:29:14 UTC (rev 
14017)
@@ -1113,12 +1113,15 @@
        }
       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 @@
              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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]