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=753854
g_option_context_add_group (context, gst_init_get_option_group ());
if (!g_option_context_parse (context, &argc, &argv, &error)) {
g_print ("option parsing failed: %s\n", error->message);
+ g_option_context_free (context);
+ g_clear_error (&error);
exit (1);
}
g_option_context_free (context);
if (error) {
g_print ("pipeline parsing error: %s\n", error->message);
gst_object_unref (pipeline);
+ g_clear_error (&error);
return;
}
if (error) {
g_print ("pipeline parsing error: %s\n", error->message);
gst_object_unref (pipeline);
+ g_clear_error (&error);
return;
}
gst_message_parse_error (message, &error, &debug);
gst_inter_test_handle_error (intertest, error, debug);
- g_error_free (error);
+ g_clear_error (&error);
g_free (debug);
}
break;
gst_message_parse_warning (message, &error, &debug);
gst_inter_test_handle_warning (intertest, error, debug);
- g_error_free (error);
+ g_clear_error (&error);
g_free (debug);
}
break;
gst_message_parse_info (message, &error, &debug);
gst_inter_test_handle_info (intertest, error, debug);
- g_error_free (error);
+ g_clear_error (&error);
g_free (debug);
}
break;
gst_message_parse_error (message, &err, &debug);
g_print ("Error: %s\n", err->message);
- g_error_free (err);
+ g_clear_error (&err);
g_free (debug);
/* Write debug graph to file */
gep_filename);
if (error) {
GST_WARNING ("Error from file loading: %s", error->message);
- g_error_free (error);
- error = NULL;
+ g_clear_error (&error);
}
} else {
prof = gst_encoding_target_get_profile (target, gep_profilename);
property_name);
if (error) {
GST_ERROR ("%s", error->message);
- g_error_free (error);
+ g_clear_error (&error);
}
res = FALSE;
}
g_option_context_add_group (ctx, gst_init_get_option_group ());
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);
}
g_option_context_free (ctx);
if (!g_file_get_contents (fn, &data, &size, &err)) {
g_error ("%s", err->message);
- g_error_free (err);
+ g_clear_error (&err);
return;
}
g_option_context_add_group (ctx, gst_init_get_option_group ());
if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
g_print ("Error initializing: %s\n", GST_STR_NULL (err->message));
+ g_option_context_free (ctx);
+ g_clear_error (&err);
exit (1);
}
g_option_context_free (ctx);
gst_message_parse_error (message, &err, &debug);
g_print ("Error: %s\n", err->message);
- g_error_free (err);
+ g_clear_error (&err);
if (debug) {
g_print ("Debug details: %s\n", debug);
g_option_context_add_group (context, gtk_get_option_group (TRUE));
if (!g_option_context_parse (context, &argc, &argv, &error)) {
g_print ("Inizialization error: %s\n", GST_STR_NULL (error->message));
+ g_option_context_free (context);
+ g_clear_error (&error);
return -1;
}
g_option_context_free (context);
g_option_context_add_group (context, gtk_get_option_group (TRUE));
if (!g_option_context_parse (context, &argc, &argv, &error)) {
g_print ("Inizialization error: %s\n", GST_STR_NULL (error->message));
+ g_option_context_free (context);
+ g_clear_error (&error);
return -1;
}
g_option_context_free (context);
g_option_context_add_group (ctx, gst_init_get_option_group ());
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);
}
g_option_context_free (ctx);
uri = gst_filename_to_uri (item->fn, &err);
if (err != NULL) {
GST_WARNING ("Could not convert '%s' to uri: %s", item->fn, err->message);
- g_error_free (err);
+ g_clear_error (&err);
return NULL;
}
g_printerr ("Error initializing: %s\n", err->message);
else
g_printerr ("Error initializing: Unknown error!\n");
+ g_option_context_free (ctx);
+ g_clear_error (&err);
return 1;
}
g_option_context_add_group (context, gst_init_get_option_group ());
if (!g_option_context_parse (context, &argc, &argv, &error)) {
g_print ("option parsing failed: %s\n", error->message);
+ g_clear_error (&error);
+ g_option_context_free (context);
exit (1);
}
g_option_context_free (context);
if (error) {
g_print("pipeline parsing error: %s\n", error->message);
+ g_clear_error (&error);
gst_object_unref (pipeline);
return;
}
if (error) {
g_print("pipeline parsing error: %s\n", error->message);
+ g_clear_error (&error);
gst_object_unref (pipeline);
return;
}
gst_message_parse_error (message, &error, &debug);
gst_replace_handle_error (replace, error, debug);
+ g_clear_error (&error);
}
break;
case GST_MESSAGE_WARNING:
gst_message_parse_warning (message, &error, &debug);
gst_replace_handle_warning (replace, error, debug);
+ g_clear_error (&error);
}
break;
case GST_MESSAGE_INFO:
gst_message_parse_info (message, &error, &debug);
gst_replace_handle_info (replace, error, debug);
+ g_clear_error (&error);
}
break;
case GST_MESSAGE_TAG: