shell-app: Do not allocate memory during GSpawnChildSetupFunc

The child context setup function used as launch GSpawnChildSetupFunc
uses g_object_get that internally potentially allocates memory, making
it not async-signal-safe and so not something that is safe to use in
between fork and exec, so just use the simpler getter here.

Note that the current implementation of app_child_setup() is safe
already as sd_journal_stream_fd, dup2 and close are so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
This commit is contained in:
Marco Trevisan (Treviño) 2024-04-30 23:45:04 +02:00 committed by Marge Bot
parent 1fbfb93cbd
commit dcb5956dea

View File

@ -1236,9 +1236,8 @@ static void
child_context_setup (gpointer user_data)
{
ShellGlobal *shell_global = user_data;
MetaContext *meta_context;
MetaContext *meta_context = shell_global_get_context (shell_global);
g_object_get (shell_global, "context", &meta_context, NULL);
meta_context_restore_rlimit_nofile (meta_context, NULL);
}