Message ID | ba4c0f7f-35af-a733-71c1-c035b3c3a495@linaro.org |
---|---|
State | Superseded |
Headers | show |
On Nov 21 2016, Adhemerval Zanella <adhemerval.zanella@linaro.org> wrote:
> With this change are you ok to push this in?
Yes, this is ok.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
On Mon, Nov 21, 2016 at 09:46:22PM +0100, Andreas Schwab wrote: > On Nov 21 2016, Adhemerval Zanella <adhemerval.zanella@linaro.org> wrote: > > > With this change are you ok to push this in? > > Yes, this is ok. No! The patch writes past the array bounds in the else branch. Ciao Dominik ^_^ ^_^ -- Dominik Vogt IBM Germany
diff --git a/posix/execvpe.c b/posix/execvpe.c index d933f9c..7cdb06a 100644 --- a/posix/execvpe.c +++ b/posix/execvpe.c @@ -48,12 +48,13 @@ maybe_script_execute (const char *file, char *const argv[], char *const envp[]) } } - /* Construct an argument list for the shell. */ + /* Construct an argument list for the shell. It will contain at minimum 3 + arguments (current shell, script, and an ending NULL. */ char *new_argv[argc + 1]; new_argv[0] = (char *) _PATH_BSHELL; new_argv[1] = (char *) file; if (argc > 1) - memcpy (new_argv + 2, argv + 1, argc * sizeof(char *)); + memcpy (new_argv + 2, argv + 1, (argc - 1) * sizeof(char *)); else new_argv[2] = NULL;