gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r31631 - gnunet/src/gns


From: gnunet
Subject: [GNUnet-SVN] r31631 - gnunet/src/gns
Date: Fri, 20 Dec 2013 19:20:02 +0100

Author: harsha
Date: 2013-12-20 19:20:01 +0100 (Fri, 20 Dec 2013)
New Revision: 31631

Modified:
   gnunet/src/gns/gns_api.c
Log:
- fix free after call to continuation


Modified: gnunet/src/gns/gns_api.c
===================================================================
--- gnunet/src/gns/gns_api.c    2013-12-20 17:48:59 UTC (rev 31630)
+++ gnunet/src/gns/gns_api.c    2013-12-20 18:20:01 UTC (rev 31631)
@@ -365,6 +365,8 @@
 {
   struct GNUNET_GNS_Handle *handle = qe->gns_handle;
   struct PendingMessage *p = (struct PendingMessage *) &qe[1];
+  GNUNET_GNS_LookupResultProcessor proc;
+  void *proc_cls;
   uint32_t rd_count = ntohl (msg->rd_count);
   struct GNUNET_GNSRECORD_Data rd[rd_count];
   size_t mlen;
@@ -378,6 +380,10 @@
   }
   mlen = ntohs (msg->header.size);
   mlen -= sizeof (struct GNUNET_GNS_ClientLookupResultMessage);
+  proc = qe->lookup_proc;
+  proc_cls = qe->proc_cls;
+  GNUNET_CONTAINER_DLL_remove (handle->lookup_head, handle->lookup_tail, qe);
+  GNUNET_free (qe);
   if (GNUNET_SYSERR == GNUNET_GNSRECORD_records_deserialize (mlen,
                                                              (const char*) 
&msg[1],
                                                              rd_count,
@@ -385,17 +391,15 @@
   {
     LOG (GNUNET_ERROR_TYPE_ERROR,
         _("Failed to serialize lookup reply from GNS service!\n"));
-    qe->lookup_proc (qe->proc_cls, 0, NULL);
+    proc (proc_cls, 0, NULL);
   }
   else
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
         "Received lookup reply from GNS service (%u records)\n",
         (unsigned int) rd_count);
-    qe->lookup_proc (qe->proc_cls, rd_count, rd);
+    proc (proc_cls, rd_count, rd);
   }
-  GNUNET_CONTAINER_DLL_remove (handle->lookup_head, handle->lookup_tail, qe);
-  GNUNET_free (qe);
 }
 
 




reply via email to

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