X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Fgnunet-uri.c;h=5ca1f4efc6bc8017de4d104f9fe8a4942d46da8f;hb=f4d040c0f0dd2fef3d73b1f4532c76219f760f75;hp=68e7fa04bf4a8081f19bcf1d32632060863f2716;hpb=4e06c259fea9d604b253b73a72c3f82eb8b15736;p=oweals%2Fgnunet.git diff --git a/src/util/gnunet-uri.c b/src/util/gnunet-uri.c index 68e7fa04b..5ca1f4efc 100644 --- a/src/util/gnunet-uri.c +++ b/src/util/gnunet-uri.c @@ -62,7 +62,7 @@ maint_child_death (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) (0 == code) ) ret = 0; else - GNUNET_OS_process_kill (p, SIGTERM); + GNUNET_break (0 == GNUNET_OS_process_kill (p, SIGTERM)); GNUNET_OS_process_destroy (p); } @@ -110,18 +110,21 @@ run (void *cls, char *const *args, const char *cfgfile, &program)) { fprintf (stderr, _("No handler known for subsystem `%s'\n"), subsystem); + GNUNET_free (subsystem); return; } + GNUNET_free (subsystem); rt = GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ), &maint_child_death, NULL); - p = GNUNET_OS_start_process (GNUNET_NO, + p = GNUNET_OS_start_process (GNUNET_NO, 0, NULL, NULL, program, program, args[0], NULL); + GNUNET_free (program); if (NULL == p) GNUNET_SCHEDULER_cancel (rt); } @@ -159,6 +162,7 @@ main (int argc, char *const *argv) GNUNET_GETOPT_OPTION_END }; struct GNUNET_SIGNAL_Context *shc_chld; + int ret; if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) return 2; @@ -166,16 +170,15 @@ main (int argc, char *const *argv) GNUNET_assert (sigpipe != NULL); shc_chld = GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death); - if (GNUNET_OK != - GNUNET_PROGRAM_run (argc, argv, "gnunet-uri URI", - gettext_noop ("Perform default-actions for GNUnet URIs"), - options, &run, NULL)) - return 1; + ret = GNUNET_PROGRAM_run (argc, argv, "gnunet-uri URI", + gettext_noop ("Perform default-actions for GNUnet URIs"), + options, &run, NULL); GNUNET_SIGNAL_handler_uninstall (shc_chld); shc_chld = NULL; GNUNET_DISK_pipe_close (sigpipe); sigpipe = NULL; - return ret; + GNUNET_free ((void *) argv); + return (GNUNET_OK == ret) ? 0 : 1; } /* end of gnunet-uri.c */