From: Colin Walters Date: Sun, 24 Jul 2016 18:54:07 +0000 (-0400) Subject: trivial-httpd: Fix leak of option context X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~49^2~61 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=7f335a843797ac0c103be6883832886a1a02a399;p=ostree.git 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 --- 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; }