aboutsummaryrefslogtreecommitdiff
path: root/posix/execvp.c
diff options
context:
space:
mode:
Diffstat (limited to 'posix/execvp.c')
-rw-r--r--posix/execvp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/posix/execvp.c b/posix/execvp.c
index 27568294a5..963b769fca 100644
--- a/posix/execvp.c
+++ b/posix/execvp.c
@@ -79,6 +79,7 @@ execvp (file, argv)
int got_eacces = 0;
char *path, *p, *name;
size_t len;
+ size_t pathlen;
path = getenv ("PATH");
if (path == NULL)
@@ -93,9 +94,10 @@ execvp (file, argv)
}
len = strlen (file) + 1;
- name = __alloca (strlen (path) + len + 1);
+ pathlen = strlen (path);
+ name = __alloca (pathlen + len + 1);
/* Copy the file name at the top. */
- name = (char *) memcpy (name - len, file, len);
+ name = (char *) memcpy (name + pathlen + 1, file, len);
/* And add the slash. */
*--name = '/';