editing-services: Fix memory leaks when context parse fails
authorVineeth TM <vineeth.tm@samsung.com>
Thu, 20 Aug 2015 08:16:50 +0000 (17:16 +0900)
committerThibault Saunier <tsaunier@gnome.org>
Wed, 30 Sep 2015 10:16:15 +0000 (12:16 +0200)
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

https://bugzilla.gnome.org/show_bug.cgi?id=753864

tests/examples/multifilesrc.c
tests/examples/overlays.c
tests/examples/simple1.c
tests/examples/test4.c
tests/examples/text_properties.c
tests/examples/thumbnails.c
tests/examples/transition.c
tools/ges-launcher.c

index 6e9e3fc..05a4c29 100644 (file)
@@ -51,6 +51,8 @@ main (int argc, gchar ** argv)
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
index c75e0c6..d0edc3b 100644 (file)
@@ -149,6 +149,8 @@ main (int argc, char **argv)
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
index c7c6be8..bc008e6 100644 (file)
@@ -57,6 +57,8 @@ main (int argc, gchar ** argv)
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
index 3497252..070b869 100644 (file)
@@ -81,8 +81,10 @@ main (int argc, gchar ** argv)
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_printerr ("Error initializing: %s\n", err->message);
     g_option_context_free (ctx);
+    g_clear_error (&err);
     return -1;
   }
+  g_option_context_free (ctx);
 
   if (argc < 3) {
     g_print ("Usage: %s <output uri> <list of audio files>\n", argv[0]);
index 8a73a70..3dc6e06 100644 (file)
@@ -112,6 +112,8 @@ main (int argc, char **argv)
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
index ea59872..9211bc7 100644 (file)
@@ -152,6 +152,7 @@ main (int argc, gchar ** argv)
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing: %s\n", err->message);
     g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
index 83d46b4..7992e2a 100644 (file)
@@ -173,6 +173,8 @@ main (int argc, char **argv)
 
   if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
     g_print ("Error initializing %s\n", err->message);
+    g_option_context_free (ctx);
+    g_clear_error (&err);
     exit (1);
   }
 
index da20abb..44ce0ca 100644 (file)
@@ -288,7 +288,7 @@ bus_message_cb (GstBus * bus, GstMessage * message, GESLauncher * self)
       g_printerr ("ERROR from element %s: %s\n", GST_OBJECT_NAME (message->src),
           err->message);
       g_printerr ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none");
-      g_error_free (err);
+      g_clear_error (&err);
       g_free (dbg_info);
       self->priv->seenerrors = TRUE;
       g_application_quit (G_APPLICATION (self));
@@ -733,7 +733,7 @@ _local_command_line (GApplication * application, gchar ** arguments[],
 
   if (!g_application_register (application, NULL, &error)) {
     *exit_status = 1;
-    g_error_free (error);
+    g_clear_error (&error);
     return FALSE;
   }