From 7f335a843797ac0c103be6883832886a1a02a399 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Sun, 24 Jul 2016 14:54:07 -0400 Subject: [PATCH] trivial-httpd: Fix leak of option context Right now our valgrind runs also end up valgrinding the `trivial-httpd` code, so while it doesn't matter, let's fix this leak anyways. We need to avoid calling `_exit()` since that won't run the cleanup functions. Closes: #410 Approved by: giuseppe --- src/ostree/ot-builtin-trivial-httpd.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/ostree/ot-builtin-trivial-httpd.c b/src/ostree/ot-builtin-trivial-httpd.c index 5b942cd5..30c593c2 100644 --- a/src/ostree/ot-builtin-trivial-httpd.c +++ b/src/ostree/ot-builtin-trivial-httpd.c @@ -386,7 +386,7 @@ gboolean ostree_builtin_trivial_httpd (int argc, char **argv, GCancellable *cancellable, GError **error) { gboolean ret = FALSE; - GOptionContext *context; + g_autoptr(GOptionContext) context = NULL; const char *dirpath; OtTrivialHttpd appstruct = { 0, }; OtTrivialHttpd *app = &appstruct; @@ -501,8 +501,8 @@ ostree_builtin_trivial_httpd (int argc, char **argv, GCancellable *cancellable, } else if (pid > 0) { - /* Parent */ - _exit (0); + ret = TRUE; + goto out; } /* Child, continue */ /* Daemonising: close stdout/stderr so $() et al work on us */ @@ -559,7 +559,5 @@ ostree_builtin_trivial_httpd (int argc, char **argv, GCancellable *cancellable, out: g_clear_object (&app->root); g_clear_object (&app->log); - if (context) - g_option_context_free (context); return ret; }