rtsp-server: Fix memory leaks when context parse fails
authorVineeth TM <vineeth.tm@samsung.com>
Thu, 20 Aug 2015 08:01:24 +0000 (17:01 +0900)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 26 Sep 2015 08:35:17 +0000 (09:35 +0100)
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=753863

examples/test-launch.c
examples/test-mp4.c
examples/test-ogg.c
examples/test-record.c
examples/test-uri.c

index 24e1271e61e3a432b9f583fe253a91f34305f316..03bcd410aa72cb89ffb9057ca983c4fedd11a9ca 100644 (file)
@@ -47,6 +47,8 @@ main (int argc, char *argv[])
   g_option_context_add_group (optctx, gst_init_get_option_group ());
   if (!g_option_context_parse (optctx, &argc, &argv, &error)) {
     g_printerr ("Error parsing options: %s\n", error->message);
+    g_option_context_free (optctx);
+    g_clear_error (&error);
     return -1;
   }
   g_option_context_free (optctx);
index 9bcaab45e2a287ed52dcf38b40df67803a2ab628..34b8906aab2edd4b23417d13a3452e60316d6d55 100644 (file)
@@ -102,6 +102,8 @@ main (int argc, char *argv[])
   g_option_context_add_group (optctx, gst_init_get_option_group ());
   if (!g_option_context_parse (optctx, &argc, &argv, &error)) {
     g_printerr ("Error parsing options: %s\n", error->message);
+    g_option_context_free (optctx);
+    g_clear_error (&error);
     return -1;
   }
 
index c22e638ba29972ace3b00f40851a4d2ad38b343a..dc052b42bb77a7a719d53749ae8beca3b3162283 100644 (file)
@@ -47,6 +47,8 @@ main (int argc, char *argv[])
   g_option_context_add_group (optctx, gst_init_get_option_group ());
   if (!g_option_context_parse (optctx, &argc, &argv, &error)) {
     g_printerr ("Error parsing options: %s\n", error->message);
+    g_option_context_free (optctx);
+    g_clear_error (&error);
     return -1;
   }
   g_option_context_free (optctx);
index 1c375038f52fa3b3d6d435cab7986905f62c6b8e..edd66ad5867cfc10aaede4d240f545246b04cfcd 100644 (file)
@@ -49,6 +49,8 @@ main (int argc, char *argv[])
   g_option_context_add_group (optctx, gst_init_get_option_group ());
   if (!g_option_context_parse (optctx, &argc, &argv, &error)) {
     g_printerr ("Error parsing options: %s\n", error->message);
+    g_option_context_free (optctx);
+    g_clear_error (&error);
     return -1;
   }
 
index 8a9c56c238109660c48d7dde16e65c1b5c5e18e7..784bf9ad6ba2b03e41e3dc492221c1fd945f6f6b 100644 (file)
@@ -76,6 +76,8 @@ main (int argc, gchar * argv[])
   g_option_context_add_group (optctx, gst_init_get_option_group ());
   if (!g_option_context_parse (optctx, &argc, &argv, &error)) {
     g_printerr ("Error parsing options: %s\n", error->message);
+    g_option_context_free (optctx);
+    g_clear_error (&error);
     return -1;
   }
   g_option_context_free (optctx);