aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-11-16 08:32:27 +0000
committerChristian Grothoff <christian@grothoff.org>2009-11-16 08:32:27 +0000
commitb1685ed04171415c242ae8e39061e899a8c6f2f5 (patch)
tree1c7ba32c278eae2e37cc8933757548785d220bd3 /src/util
parentc3140081a55e9913de37ff21734b3da5b89b4302 (diff)
downloadgnunet-b1685ed04171415c242ae8e39061e899a8c6f2f5.tar.gz
gnunet-b1685ed04171415c242ae8e39061e899a8c6f2f5.zip
bugfix
Diffstat (limited to 'src/util')
-rw-r--r--src/util/Makefile.am1
-rw-r--r--src/util/program.c24
-rw-r--r--src/util/pseudonym.c4
3 files changed, 28 insertions, 1 deletions
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index 47744001b..c85a2cd75 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -362,6 +362,7 @@ perf_crypto_hash_LDADD = \
362 362
363 363
364EXTRA_DIST = \ 364EXTRA_DIST = \
365 program_lib_argz.c \
365 test_configuration_data.conf \ 366 test_configuration_data.conf \
366 test_container_meta_data_image.jpg \ 367 test_container_meta_data_image.jpg \
367 test_program_data.conf \ 368 test_program_data.conf \
diff --git a/src/util/program.c b/src/util/program.c
index 695a6f9bc..f74da8c7f 100644
--- a/src/util/program.c
+++ b/src/util/program.c
@@ -35,6 +35,12 @@
35#include "gnunet_scheduler_lib.h" 35#include "gnunet_scheduler_lib.h"
36#include <gcrypt.h> 36#include <gcrypt.h>
37 37
38#if HAVE_ARGZ_H
39#include <argz.h>
40#else
41#include "program_lib_argz.c"
42#endif
43
38/** 44/**
39 * Context for the command. 45 * Context for the command.
40 */ 46 */
@@ -139,7 +145,25 @@ GNUNET_PROGRAM_run (int argc,
139 GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION) 145 GNUNET_GETOPT_OPTION_VERSION (PACKAGE_VERSION)
140 }; 146 };
141 struct GNUNET_GETOPT_CommandLineOption *allopts; 147 struct GNUNET_GETOPT_CommandLineOption *allopts;
148 const char *gargs;
142 149
150 gargs = getenv ("GNUNET_ARGS");
151 if (gargs != NULL)
152 {
153 char *gargz;
154 size_t gargl;
155 char **gargv;
156 int i;
157
158 argz_create_sep (gargs, ' ', &gargz, &gargl);
159 for (i=0;i<argc;i++)
160 argz_insert (&gargz, &gargl, gargz, argv[i]);
161 gargv = GNUNET_malloc (sizeof (char*) * (gargl+1));
162 argz_extract (gargz, gargl, gargv);
163 argc = argz_count (gargz, gargl);
164 free (gargz);
165 argv = (char *const *) gargv;
166 }
143 memset (&cc, 0, sizeof (cc)); 167 memset (&cc, 0, sizeof (cc));
144 loglev = NULL; 168 loglev = NULL;
145 cc.task = task; 169 cc.task = task;
diff --git a/src/util/pseudonym.c b/src/util/pseudonym.c
index 91bdd6c9d..67bca2e4a 100644
--- a/src/util/pseudonym.c
+++ b/src/util/pseudonym.c
@@ -409,7 +409,7 @@ list_pseudonym_helper (void *cls, const char *fullname)
409 int rating; 409 int rating;
410 struct GNUNET_CONTAINER_MetaData *meta; 410 struct GNUNET_CONTAINER_MetaData *meta;
411 const char *fn; 411 const char *fn;
412 const char *str = "not null"; 412 char *str;
413 413
414 if (strlen (fullname) < sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded)) 414 if (strlen (fullname) < sizeof (struct GNUNET_CRYPTO_HashAsciiEncoded))
415 return GNUNET_OK; 415 return GNUNET_OK;
@@ -421,8 +421,10 @@ list_pseudonym_helper (void *cls, const char *fullname)
421 ret = GNUNET_OK; 421 ret = GNUNET_OK;
422 if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (fn, &id)) 422 if (GNUNET_OK != GNUNET_CRYPTO_hash_from_string (fn, &id))
423 return GNUNET_OK; /* invalid name */ 423 return GNUNET_OK; /* invalid name */
424 str = NULL;
424 if (GNUNET_OK != read_info (c->cfg, &id, &meta, &rating, &str)) 425 if (GNUNET_OK != read_info (c->cfg, &id, &meta, &rating, &str))
425 return GNUNET_OK; /* ignore entry */ 426 return GNUNET_OK; /* ignore entry */
427 GNUNET_free_non_null (str);
426 if (c->iterator != NULL) 428 if (c->iterator != NULL)
427 ret = c->iterator (c->closure, &id, meta, rating); 429 ret = c->iterator (c->closure, &id, meta, rating);
428 GNUNET_CONTAINER_meta_data_destroy (meta); 430 GNUNET_CONTAINER_meta_data_destroy (meta);