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
This commit is contained in:
parent
d9a7bb75d0
commit
9bdfc48f09
@ -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…
Reference in New Issue
Block a user