gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r12077 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r12077 - gnunet/src/util
Date: Thu, 1 Jul 2010 13:46:31 +0200

Author: grothoff
Date: 2010-07-01 13:46:31 +0200 (Thu, 01 Jul 2010)
New Revision: 12077

Modified:
   gnunet/src/util/gnunet-service-resolver.c
   gnunet/src/util/server_tc.c
Log:
fixing 'resolver' double free issue

Modified: gnunet/src/util/gnunet-service-resolver.c
===================================================================
--- gnunet/src/util/gnunet-service-resolver.c   2010-07-01 09:35:01 UTC (rev 
12076)
+++ gnunet/src/util/gnunet-service-resolver.c   2010-07-01 11:46:31 UTC (rev 
12077)
@@ -168,6 +168,7 @@
   if (salen < sizeof (struct sockaddr))
     {
       GNUNET_break (0);
+      GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
       return;
     }
   now = GNUNET_TIME_absolute_get ();

Modified: gnunet/src/util/server_tc.c
===================================================================
--- gnunet/src/util/server_tc.c 2010-07-01 09:35:01 UTC (rev 12076)
+++ gnunet/src/util/server_tc.c 2010-07-01 11:46:31 UTC (rev 12077)
@@ -82,6 +82,7 @@
   if (buf == NULL)
     {
       GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR);
+      GNUNET_SERVER_client_drop (tc->client);
       GNUNET_free_non_null (tc->buf);
       GNUNET_free (tc);
       return 0;
@@ -95,6 +96,7 @@
   if (tc->total == tc->off)
     {
       GNUNET_SERVER_receive_done (tc->client, GNUNET_OK);
+      GNUNET_SERVER_client_drop (tc->client);
       GNUNET_free_non_null (tc->buf);
       GNUNET_free (tc);
     }
@@ -111,6 +113,7 @@
         {
           GNUNET_break (0);
           GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR);
+         GNUNET_SERVER_client_drop (tc->client);
           GNUNET_free_non_null (tc->buf);
           GNUNET_free (tc);
         }
@@ -133,6 +136,7 @@
 
   GNUNET_assert (client != NULL);
   tc = GNUNET_malloc (sizeof (struct GNUNET_SERVER_TransmitContext));
+  GNUNET_SERVER_client_keep (client);
   tc->client = client;
   return tc;
 }
@@ -213,6 +217,7 @@
     {
       GNUNET_break (0);
       GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR);
+      GNUNET_SERVER_client_drop (tc->client);
       GNUNET_free_non_null (tc->buf);
       GNUNET_free (tc);
     }




reply via email to

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