wayland: Use an array initializer for the X server arguments

This fixes the unitialized array members introduced previously and
should avoid such mistakes again going forward.

https://bugzilla.gnome.org/show_bug.cgi?id=727011
This commit is contained in:
Rui Matos 2014-03-25 11:59:04 +01:00
parent a55622d924
commit 7484d540cd

View File

@ -303,8 +303,6 @@ meta_xwayland_start (MetaXWaylandManager *manager,
pid_t pid; pid_t pid;
char **env; char **env;
char *fd_string; char *fd_string;
char *args[10];
GError *error;
wl_global_create (wl_display, &xserver_interface, wl_global_create (wl_display, &xserver_interface,
META_XSERVER_VERSION, META_XSERVER_VERSION,
@ -364,38 +362,40 @@ meta_xwayland_start (MetaXWaylandManager *manager,
manager->display_name = g_strdup_printf (":%d", manager->display_index); manager->display_name = g_strdup_printf (":%d", manager->display_index);
args[0] = XWAYLAND_PATH; {
args[1] = manager->display_name; GError *error = NULL;
args[2] = "-wayland"; gchar *args[] = { XWAYLAND_PATH,
args[3] = "-rootless"; manager->display_name,
args[4] = "-noreset"; "-wayland",
args[7] = "-nolisten"; "-rootless",
args[8] = "all"; "-noreset",
args[9] = NULL; "-nolisten",
"all",
NULL };
error = NULL; if (g_spawn_async (NULL, /* cwd */
if (g_spawn_async (NULL, /* cwd */ args,
args, env,
env, G_SPAWN_LEAVE_DESCRIPTORS_OPEN |
G_SPAWN_LEAVE_DESCRIPTORS_OPEN | G_SPAWN_DO_NOT_REAP_CHILD,
G_SPAWN_DO_NOT_REAP_CHILD, uncloexec,
uncloexec, GINT_TO_POINTER (sp[1]),
GINT_TO_POINTER (sp[1]), &pid,
&pid, &error))
&error)) {
{ g_message ("forked X server, pid %d\n", pid);
g_message ("forked X server, pid %d\n", pid);
close (sp[1]); close (sp[1]);
manager->client = wl_client_create (wl_display, sp[0]); manager->client = wl_client_create (wl_display, sp[0]);
manager->pid = pid; manager->pid = pid;
g_child_watch_add (pid, xserver_died, NULL); g_child_watch_add (pid, xserver_died, NULL);
} }
else else
{ {
g_error ("Failed to fork for xwayland server: %s", error->message); g_error ("Failed to fork for xwayland server: %s", error->message);
} }
}
g_strfreev (env); g_strfreev (env);