From 1bb699446af3129f4647fd1504bd32574e060b2c Mon Sep 17 00:00:00 2001 From: Luis de Bethencourt Date: Thu, 31 Mar 2016 11:46:03 +0100 Subject: [PATCH] info: only open log file when adding it to the log function This avoids the leak of opening it and then not passing it or closing it before it goes out of scope. --- gst/gstinfo.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/gst/gstinfo.c b/gst/gstinfo.c index d9e9d11..395fa71 100644 --- a/gst/gstinfo.c +++ b/gst/gstinfo.c @@ -299,20 +299,24 @@ _priv_gst_debug_init (void) const gchar *env; FILE *log_file; - env = g_getenv ("GST_DEBUG_FILE"); - if (env != NULL && *env != '\0') { - if (strcmp (env, "-") == 0) { - log_file = stdout; - } else { - log_file = g_fopen (env, "w"); - if (log_file == NULL) { - g_printerr ("Could not open log file '%s' for writing: %s\n", env, - g_strerror (errno)); - log_file = stderr; + if (add_default_log_func) { + env = g_getenv ("GST_DEBUG_FILE"); + if (env != NULL && *env != '\0') { + if (strcmp (env, "-") == 0) { + log_file = stdout; + } else { + log_file = g_fopen (env, "w"); + if (log_file == NULL) { + g_printerr ("Could not open log file '%s' for writing: %s\n", env, + g_strerror (errno)); + log_file = stderr; + } } + } else { + log_file = stderr; } - } else { - log_file = stderr; + + gst_debug_add_log_function (gst_debug_log_default, log_file, NULL); } __gst_printf_pointer_extension_set_func @@ -324,9 +328,6 @@ _priv_gst_debug_init (void) _GST_CAT_DEBUG = _gst_debug_category_new ("GST_DEBUG", GST_DEBUG_BOLD | GST_DEBUG_FG_YELLOW, "debugging subsystem"); - if (add_default_log_func) - gst_debug_add_log_function (gst_debug_log_default, log_file, NULL); - /* FIXME: add descriptions here */ GST_CAT_GST_INIT = _gst_debug_category_new ("GST_INIT", GST_DEBUG_BOLD | GST_DEBUG_FG_RED, NULL); -- 2.7.4