From: Christian Grothoff Date: Sun, 18 Sep 2011 07:19:47 +0000 (+0000) Subject: fixing 1767: X-Git-Tag: initial-import-from-subversion-38251~17041 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fb44fdf83d0800e2e3e5300c3fe459bc01ec3d70;p=oweals%2Fgnunet.git fixing 1767: --- diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c index eb19776e6..718d90280 100644 --- a/src/arm/gnunet-service-arm.c +++ b/src/arm/gnunet-service-arm.c @@ -660,6 +660,7 @@ static void shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct ServiceList *pos; + struct ServiceList *nxt; #if DEBUG_ARM GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _("Stopping all services\n")); @@ -674,13 +675,18 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) pos = running_head; while (NULL != pos) { + nxt = pos->next; if (pos->proc != NULL) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping service `%s'\n", pos->name); if (0 != GNUNET_OS_process_kill (pos->proc, SIGTERM)) GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); } - pos = pos->next; + else + { + free_service (pos); + } + pos = nxt; } if (running_head == NULL) do_shutdown ();