gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] 01/04: Peerstore: Fixed memory related bugs.


From: gnunet
Subject: [gnunet] 01/04: Peerstore: Fixed memory related bugs.
Date: Mon, 30 Oct 2023 15:04:55 +0100

This is an automated email from the git hooks/post-receive script.

t3sserakt pushed a commit to branch master
in repository gnunet.

commit 2b87bab148e4af8888fb3446f623e76b247003bd
Author: t3sserakt <t3ss@posteo.de>
AuthorDate: Mon Oct 30 13:49:50 2023 +0100

    Peerstore: Fixed memory related bugs.
---
 src/service/hostlist/gnunet-daemon-hostlist_client.c | 3 +++
 src/service/peerstore/peerstore_api.c                | 5 ++++-
 src/service/topology/gnunet-daemon-topology.c        | 3 +++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/service/hostlist/gnunet-daemon-hostlist_client.c 
b/src/service/hostlist/gnunet-daemon-hostlist_client.c
index 5a61e62c2..bedc52612 100644
--- a/src/service/hostlist/gnunet-daemon-hostlist_client.c
+++ b/src/service/hostlist/gnunet-daemon-hostlist_client.c
@@ -332,6 +332,7 @@ shc_cont (void *cls, int success)
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Error storing hostlist entry!\n");
   GNUNET_CONTAINER_DLL_remove (shc_head, shc_tail, shc_cls->shc);
+  GNUNET_free (shc_cls);
 }
 
 
@@ -423,6 +424,8 @@ callback_download (void *ptr, size_t size, size_t nmemb, 
void *ctx)
       shc_cls->shc = shc;
       GNUNET_CONTAINER_DLL_insert (shc_head, shc_tail, shc);
     }
+    else
+      GNUNET_free (shc_cls);
     memmove (download_buffer, &download_buffer[msize], download_pos - msize);
     download_pos -= msize;
   }
diff --git a/src/service/peerstore/peerstore_api.c 
b/src/service/peerstore/peerstore_api.c
index d5cb091f9..e627e1e82 100644
--- a/src/service/peerstore/peerstore_api.c
+++ b/src/service/peerstore/peerstore_api.c
@@ -1150,6 +1150,7 @@ merge_success (void *cls, int success)
   struct StoreHelloCls *shu_cls = cls;
   struct GNUNET_PEERSTORE_StoreHelloContext *huc = shu_cls->huc;
 
+  GNUNET_CONTAINER_multipeermap_remove (huc->store_context_map, huc->pid, 
shu_cls->sc);
   if (GNUNET_OK != success)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
@@ -1158,9 +1159,9 @@ merge_success (void *cls, int success)
     GNUNET_free (huc->hello);
     GNUNET_free (huc->pid);
     GNUNET_free (huc);
+    GNUNET_free (shu_cls);
     return;
   }
-  GNUNET_CONTAINER_multipeermap_remove (huc->store_context_map, huc->pid, 
shu_cls->sc);
   if (0 == GNUNET_CONTAINER_multipeermap_size (huc->store_context_map))
   {
     GNUNET_PEERSTORE_watch_cancel (huc->wc);
@@ -1173,11 +1174,13 @@ merge_success (void *cls, int success)
     GNUNET_free (huc->hello);
     GNUNET_free (huc->pid);
     GNUNET_free (huc);
+    GNUNET_free (shu_cls);
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Got notified during storing hello uri for peer %s!\n",
               GNUNET_i2s (huc->pid));
+  GNUNET_free (shu_cls);
 }
 
 
diff --git a/src/service/topology/gnunet-daemon-topology.c 
b/src/service/topology/gnunet-daemon-topology.c
index 19bd29563..587f564dd 100644
--- a/src/service/topology/gnunet-daemon-topology.c
+++ b/src/service/topology/gnunet-daemon-topology.c
@@ -852,6 +852,7 @@ shc_cont (void *cls, int success)
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Error storing hello!\n");
   GNUNET_CONTAINER_DLL_remove (shc_head, shc_tail, shc_cls->shc);
+  GNUNET_free (shc_cls);
 }
 
 
@@ -886,6 +887,8 @@ handle_hello (void *cls, const struct GNUNET_MessageHeader 
*message)
     shc_cls->shc = shc;
     GNUNET_CONTAINER_DLL_insert (shc_head, shc_tail, shc);
   }
+  else
+    GNUNET_free (shc_cls);
   GNUNET_HELLO_builder_free (builder);
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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