[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);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r31631 - gnunet/src/gns,
gnunet <=