info: only open log file when adding it to the log function
authorLuis de Bethencourt <luisbg@osg.samsung.com>
Thu, 31 Mar 2016 10:46:03 +0000 (11:46 +0100)
committerLuis de Bethencourt <luisbg@osg.samsung.com>
Sat, 2 Apr 2016 09:47:57 +0000 (10:47 +0100)
This avoids the leak of opening it and then not passing it or closing it
before it goes out of scope.

gst/gstinfo.c

index d9e9d11..395fa71 100644 (file)
@@ -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);