gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22759 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r22759 - gnunet/src/mesh
Date: Wed, 18 Jul 2012 17:38:36 +0200

Author: bartpolot
Date: 2012-07-18 17:38:36 +0200 (Wed, 18 Jul 2012)
New Revision: 22759

Modified:
   gnunet/src/mesh/gnunet-service-mesh.c
Log:
- fix memleaks in regex

Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c       2012-07-18 15:31:49 UTC (rev 
22758)
+++ gnunet/src/mesh/gnunet-service-mesh.c       2012-07-18 15:38:36 UTC (rev 
22759)
@@ -4627,7 +4627,6 @@
   struct MeshRegexSearchContext *ctx = cls;
   struct MeshRegexSearchInfo *info = ctx->info;
   void *copy;
-  char *proof;
   size_t len;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -4641,13 +4640,16 @@
                 GNUNET_CONTAINER_multihashmap_put(info->dht_get_results, key, 
copy,
                                                   
GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE));
   len = ntohl (block->n_proof);
-  proof = GNUNET_malloc (len + 1);
-  memcpy (proof, &block[1], len);
-  proof[len] = '\0';
-  if (GNUNET_OK != GNUNET_REGEX_check_proof (proof, key))
   {
-    GNUNET_break_op (0);
-    return;
+    char proof[len + 1];
+
+    memcpy (proof, &block[1], len);
+    proof[len] = '\0';
+    if (GNUNET_OK != GNUNET_REGEX_check_proof (proof, key))
+    {
+      GNUNET_break_op (0);
+      return;
+    }
   }
   len = strlen (info->description);
   if (len == ctx->position) // String processed
@@ -4737,6 +4739,7 @@
     {
       GNUNET_free (c->regexes[i]);
     }
+    GNUNET_free (c->regexes);
     if (GNUNET_SCHEDULER_NO_TASK != c->regex_announce_task)
       GNUNET_SCHEDULER_cancel (c->regex_announce_task);
     next = c->next;




reply via email to

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