summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-07-16 03:23:39 +0200
committerAllan McRae <allan@archlinux.org>2013-01-17 13:32:54 +0100
commit60b192e3836a150eb6950ce52241efebbee00f11 (patch)
treee410679b2663dda78e8f57540cc125c976023447
parent9c160cf3f3cbda5fe5b6188e9e31775b71fc5bab (diff)
downloadpacman-60b192e3836a150eb6950ce52241efebbee00f11.tar.gz
pacman-60b192e3836a150eb6950ce52241efebbee00f11.tar.xz
Use execvp for running programs in chroot
This makes us more robust to utilities changing paths. There is no functional change when a full path is specified. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/util.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c
index c88326f2..be20ddee 100644
--- a/lib/libalpm/util.c
+++ b/lib/libalpm/util.c
@@ -549,9 +549,9 @@ int _alpm_run_chroot(alpm_handle_t *handle, const char *cmd, char *const argv[])
exit(1);
}
umask(0022);
- execv(cmd, argv);
- /* execv only returns if there was an error */
- fprintf(stderr, _("call to execv failed (%s)\n"), strerror(errno));
+ execvp(cmd, argv);
+ /* execvp only returns if there was an error */
+ fprintf(stderr, _("call to execvp failed (%s)\n"), strerror(errno));
exit(1);
} else {
/* this code runs for the parent only (wait on the child) */