diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-07-24 21:41:49 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-07-24 21:41:49 +0000 |
commit | 0fee522db1412106381ebd2ad6803c07e033a271 (patch) | |
tree | 829500bf8cf476f33551d1870a1f454d73a4d05e /posix/execvp.c | |
parent | c2263408588c70a6232ffd606a3c7abf0a5fd5f5 (diff) | |
download | glibc-0fee522db1412106381ebd2ad6803c07e033a271.tar.gz |
[BZ #1125]
* posix/Makefile (tests): Add tst-execvp4.
* posix/tst-execvp4.c: New file.
2005-07-24 Jakub Jelinek <jakub@redhat.com>
[BZ #1125]
* posix/execvp.c (execvp): Change path_malloc to
char *, free that pointer on failure.
-2005-07-24 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'posix/execvp.c')
-rw-r--r-- | posix/execvp.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/posix/execvp.c b/posix/execvp.c index 6f4e4b8566..8421bd048f 100644 --- a/posix/execvp.c +++ b/posix/execvp.c @@ -88,7 +88,7 @@ execvp (file, argv) else { char *path = getenv ("PATH"); - bool path_malloc = false; + char *path_malloc = NULL; if (path == NULL) { /* There is no `PATH' in the environment. @@ -100,7 +100,7 @@ execvp (file, argv) return -1; path[0] = ':'; (void) confstr (_CS_PATH, path + 1, len); - path_malloc = true; + path_malloc = path; } size_t len = strlen (file) + 1; @@ -108,8 +108,7 @@ execvp (file, argv) char *name = malloc (pathlen + len + 1); if (name == NULL) { - if (path_malloc) - free (path); + free (path_malloc); return -1; } /* Copy the file name at the top. */ @@ -190,8 +189,7 @@ execvp (file, argv) free (script_argv); free (name - pathlen); - if (path_malloc) - free (path); + free (path_malloc); } /* Return the error from the last attempt (probably ENOENT). */ |