mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-11 15:06:14 +01:00
gapplication: fix arguments leak in error path
If this g_return_val_if_fail() is ever hit, then we leak arguments. This is not very important because if your code hits g_return_val_if_fail() you are invoking undefined behavior, a rather more serious problem, but let's replace it with g_critical() to be robust. This includes a small behavior change: it returns 1 rather than 0 in this error case. Found by Coverity.
This commit is contained in:
parent
e2f2706539
commit
65b4bc30eb
@ -2524,7 +2524,12 @@ g_application_run (GApplication *application,
|
|||||||
|
|
||||||
context = g_main_context_default ();
|
context = g_main_context_default ();
|
||||||
acquired_context = g_main_context_acquire (context);
|
acquired_context = g_main_context_acquire (context);
|
||||||
g_return_val_if_fail (acquired_context, 0);
|
if (!acquired_context)
|
||||||
|
{
|
||||||
|
g_critical ("g_application_run() cannot acquire the default main context because it is already acquired by another thread!");
|
||||||
|
g_strfreev (arguments);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (!G_APPLICATION_GET_CLASS (application)
|
if (!G_APPLICATION_GET_CLASS (application)
|
||||||
->local_command_line (application, &arguments, &status))
|
->local_command_line (application, &arguments, &status))
|
||||||
|
Loading…
Reference in New Issue
Block a user