weston-launch: Fix failure to exec weston due to initalized argv values

The array of arguments supplied to execv must be NULL terminated. If
unitialized values are used as pointers the exec call may fail with a
EFAULT error ("Bad address").

https://bugs.freedesktop.org/show_bug.cgi?id=64874
dev
Ander Conselvan de Oliveira 12 years ago committed by Kristian Høgsberg
parent d9a7bb75d0
commit 9bdfc48f09
  1. 5
      src/weston-launch.c

@ -570,7 +570,7 @@ main(int argc, char *argv[])
}
}
if ((argc - optind) > (MAX_ARGV_SIZE - 5))
if ((argc - optind) > (MAX_ARGV_SIZE - 6))
error(1, E2BIG, "Too many arguments to pass to weston");
if (new_user)
@ -586,7 +586,8 @@ main(int argc, char *argv[])
child_argv[3] = BINDIR "/weston \"$@\"";
child_argv[4] = "weston";
for (i = 0; i < (argc - optind); ++i)
child_argv[5+i] = argv[optind+i];
child_argv[5 + i] = argv[optind + i];
child_argv[5 + i] = NULL;
term = getenv("TERM");
clearenv();

Loading…
Cancel
Save