View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0007651 | GNUnet | DHT service | public | 2023-01-30 00:49 | 2024-06-08 12:03 | 
| Reporter | ulfvonbelow | Assigned To | schanzen | ||
| Priority | normal | Severity | trivial | Reproducibility | always | 
| Status | closed | Resolution | fixed | ||
| Product Version | Git master | ||||
| Target Version | 0.19.4 | Fixed in Version | 0.21.2 | ||
| Summary | 0007651: "Memory leak" in gnunet-dht-get and gnunet-dht-put | ||||
| Description | The argv created by GNUNET_STRINGS_get_utf8_args is never freed. | ||||
| Steps To Reproduce | ./configure --enable-sanitizer make make install make check  | ||||
| Additional Information | Not a real problem, again, but sanitizers... Patch attached.  | ||||
| Tags | patch | ||||
| Attached Files |  0001-DHT-remove-memory-leak-in-gnunet-dht-get-put.patch (2,234 bytes)   
 
From 5ecf4d9a574395b7a2c62623f658bcc043eca28f Mon Sep 17 00:00:00 2001
From: ulfvonbelow <strilen@tilde.club>
Date: Sun, 29 Jan 2023 07:08:37 -0600
Subject: [PATCH] DHT: remove "memory leak" in gnunet-dht-{get,put}.
Not really a memory leak, but good to get the sanitizers off our back.
---
 src/dht/gnunet-dht-get.c | 26 ++++++++++++++------------
 src/dht/gnunet-dht-put.c |  9 +++++----
 2 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/src/dht/gnunet-dht-get.c b/src/dht/gnunet-dht-get.c
index 1ae9235f8..4a071dbad 100644
--- a/src/dht/gnunet-dht-get.c
+++ b/src/dht/gnunet-dht-get.c
@@ -329,18 +329,20 @@ main (int argc, char *const *argv)
       GNUNET_STRINGS_get_utf8_args (argc, argv,
                                     &argc, &argv))
     return 2;
-  return (GNUNET_OK ==
-          GNUNET_PROGRAM_run (
-            argc,
-            argv,
-            "gnunet-dht-get",
-            gettext_noop (
-              "Issue a GET request to the GNUnet DHT, prints results."),
-            options,
-            &run,
-            NULL))
-         ? ret
-         : 1;
+  ret = (GNUNET_OK ==
+         GNUNET_PROGRAM_run (
+           argc,
+           argv,
+           "gnunet-dht-get",
+           gettext_noop (
+             "Issue a GET request to the GNUnet DHT, prints results."),
+           options,
+           &run,
+           NULL))
+        ? ret
+        : 1;
+  GNUNET_free (argv);
+  return ret;
 }
 
 
diff --git a/src/dht/gnunet-dht-put.c b/src/dht/gnunet-dht-put.c
index 531107ef2..2281ff56b 100644
--- a/src/dht/gnunet-dht-put.c
+++ b/src/dht/gnunet-dht-put.c
@@ -226,13 +226,12 @@ main (int argc, char *const *argv)
     GNUNET_GETOPT_OPTION_END
   };
 
-
   if (GNUNET_OK !=
       GNUNET_STRINGS_get_utf8_args (argc, argv,
                                     &argc, &argv))
     return 2;
   expiration = GNUNET_TIME_UNIT_HOURS;
-  return (GNUNET_OK ==
+  ret = (GNUNET_OK ==
           GNUNET_PROGRAM_run (
             argc,
             argv,
@@ -242,8 +241,10 @@ main (int argc, char *const *argv)
             options,
             &run,
             NULL))
-         ? ret
-         : 1;
+        ? ret
+        : 1;
+  GNUNET_free (argv);
+  return ret;
 }
 
 
-- 
2.38.1
 | ||||
| 
		 | 
	Actually, reverting this as we cannot free a const pointer here. This may have to be fixed in PROGRAM_run... | 
| 
		 | 
	ab66a7a9d..eabc1baaf | 
| 
		 | 
	eabc1baaf980d8948f3fc0ac83a84446d5f1b226 didn't reintroduce the 'ret = ...' line to replace the 'return ...' line, so it still always returns before the memory is freed. So the sanitizers still fail on this. | 
| 
		 | 
	Fix committed to master branch. | 
| 
		 | 
	released some time ago | 
| 
		 | 
	The fix seems to have made its way only to gnunet-dht-get, not gnunet-dht-put | 
| 
		 | 
	95f0616e0ca40eb2eef5881b0eaccc110a27fddc | 
| 
		 | 
	Fix committed to master branch. | 
| 
		 | 
	0.21.2 released | 
| 
	
	 gnunet: master f52d578f 2023-06-01 22:21 Details Diff  | 
DHT: Fix memory leak. Fixes 0007651 | 
Affected Issues 0007651  | 
|
| mod - src/dht/gnunet-dht-get.c | Diff File | ||
| 
	
	 gnunet: master 95f0616e 2024-05-05 16:03 Details Diff  | 
DHT: Fix memory lead in gnunet-dht-put. Fixes 0007651 | 
Affected Issues 0007651  | 
|
| mod - src/cli/dht/gnunet-dht-put.c | Diff File | ||
| Date Modified | Username | Field | Change | 
|---|---|---|---|
| 2023-01-30 00:49 | ulfvonbelow | New Issue | |
| 2023-01-30 00:49 | ulfvonbelow | Tag Attached: patch | |
| 2023-01-30 00:49 | ulfvonbelow | File Added: 0001-DHT-remove-memory-leak-in-gnunet-dht-get-put.patch | |
| 2023-02-06 05:53 | schanzen | Assigned To | => schanzen | 
| 2023-02-06 05:53 | schanzen | Status | new => resolved | 
| 2023-02-06 05:53 | schanzen | Resolution | open => fixed | 
| 2023-02-06 05:53 | schanzen | Fixed in Version | => 0.19.4 | 
| 2023-02-06 06:19 | schanzen | Target Version | => 0.19.4 | 
| 2023-02-06 06:54 | schanzen | Status | resolved => feedback | 
| 2023-02-06 06:54 | schanzen | Resolution | fixed => reopened | 
| 2023-02-06 06:54 | schanzen | Note Added: 0019765 | |
| 2023-02-06 07:05 | schanzen | Status | feedback => resolved | 
| 2023-02-06 07:05 | schanzen | Resolution | reopened => fixed | 
| 2023-02-06 07:05 | schanzen | Note Added: 0019766 | |
| 2023-05-25 18:51 | ulfvonbelow | Status | resolved => feedback | 
| 2023-05-25 18:51 | ulfvonbelow | Resolution | fixed => reopened | 
| 2023-05-25 18:51 | ulfvonbelow | Note Added: 0020201 | |
| 2023-06-01 20:21 | schanzen | Changeset attached | => gnunet master f52d578f | 
| 2023-06-01 20:21 | schanzen | Note Added: 0020211 | |
| 2023-06-01 20:21 | schanzen | Status | feedback => resolved | 
| 2023-06-01 20:21 | schanzen | Resolution | reopened => fixed | 
| 2023-06-01 20:26 | schanzen | Note Added: 0020212 | |
| 2023-06-01 20:26 | schanzen | Status | resolved => closed | 
| 2024-05-03 03:49 | ulfvonbelow | Status | closed => feedback | 
| 2024-05-03 03:49 | ulfvonbelow | Resolution | fixed => reopened | 
| 2024-05-03 03:49 | ulfvonbelow | Note Added: 0022331 | |
| 2024-05-05 14:04 | schanzen | Status | feedback => resolved | 
| 2024-05-05 14:04 | schanzen | Fixed in Version | 0.19.4 => 0.21.2 | 
| 2024-05-05 14:04 | schanzen | Note Added: 0022343 | |
| 2024-05-05 14:04 | schanzen | Changeset attached | => gnunet master 95f0616e | 
| 2024-05-05 14:04 | schanzen | Note Added: 0022344 | |
| 2024-05-05 14:04 | schanzen | Resolution | reopened => fixed | 
| 2024-06-08 12:03 | schanzen | Note Added: 0022556 | |
| 2024-06-08 12:03 | schanzen | Status | resolved => closed |