fix #4054
authorChristian Grothoff <christian@grothoff.org>
Mon, 16 Nov 2015 07:43:22 +0000 (07:43 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 16 Nov 2015 07:43:22 +0000 (07:43 +0000)
src/testbed/gnunet-daemon-testbed-blacklist.c
src/testbed/gnunet-helper-testbed.c

index 57e319c2ac11ce889634b710b5b4310ca50e73be..9492788fc0a2119f0e72c9541bf7a3882ab547e8 100644 (file)
@@ -212,7 +212,7 @@ run (void *cls, char *const *args, const char *cfgfile,
      const struct GNUNET_CONFIGURATION_Handle *c)
 {
   char *shome;
-  char fname[PATH_MAX];
+  char *fname;
 
   if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_filename (c, "PATHS",
                                                             "GNUNET_HOME",
@@ -221,15 +221,21 @@ run (void *cls, char *const *args, const char *cfgfile,
     GNUNET_break (0);
     return;
   }
-  GNUNET_assert (0 < GNUNET_snprintf (fname, PATH_MAX, "%s/whitelist", shome));
+  GNUNET_asprintf (&fname,
+                   "%s/whitelist",
+                   shome);
   if (GNUNET_YES == GNUNET_DISK_file_test (fname))
   {
     mode = ACCESS_ALLOW;
     setup_ac (fname, c);
     GNUNET_free (shome);
+    GNUNET_free (fname);
     return;
   }
-  GNUNET_assert (0 < GNUNET_snprintf (fname, PATH_MAX, "%s/blacklist", shome));
+  GNUNET_asprintf (&fname,
+                   "%s/blacklist",
+                   shome);
+  GNUNET_free (fname);
   if (GNUNET_YES == GNUNET_DISK_file_test (fname))
   {
     mode = ACCESS_DENY;
index 34640e4831c58d462490cb959d0fe23055fc99ad..13f6c0c89108e9aa0dfdf9792021c788f74d9838 100644 (file)
@@ -420,13 +420,16 @@ tokenizer_cb (void *cls, void *client,
   if (NULL != evstr)
   {
 #ifdef WINDOWS
-    GNUNET_assert (0 != SetEnvironmentVariable (GNUNET_TESTING_PREFIX, evstr));
+    GNUNET_assert (0 != SetEnvironmentVariable (GNUNET_TESTING_PREFIX,
+                                                evstr));
 #else
-    static char evar[2* PATH_MAX];
+    char *evar;
 
-    GNUNET_assert (0 < GNUNET_snprintf (evar, sizeof (evar),
-                                        GNUNET_TESTING_PREFIX "=%s", evstr));
-    putenv (evar);
+    GNUNET_asprintf (&evar,
+                     GNUNET_TESTING_PREFIX "=%s",
+                     evstr);
+    putenv (evar); /* consumes 'evar',
+                      see putenv(): becomes part of envrionment! */
 #endif
     GNUNET_free (evstr);
     evstr = NULL;