From 9558639d8009483fbf422b138d020745986f82f1 Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Thu, 29 Nov 2007 23:30:57 -0600 Subject: popen does NOT require /bin/sh in a subchroot I appears that when chrooted, the /bin/sh used by popen is that of the parent process. This is true until the process forks once chrooted, which we do not want to do. As such, this actually makes things nicer. We don't need a /bin/sh in a chroot to run install scriptlets, and don't need to check for it in the root directory Signed-off-by: Aaron Griffin Signed-off-by: Dan McGee --- lib/libalpm/trans.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/libalpm/trans.c') diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 70e34d43..582c76b7 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -475,10 +475,10 @@ int _alpm_runscriptlet(const char *root, const char *installfn, return(0); } - snprintf(tmpdir, PATH_MAX, "%sbin/sh", root); - if(stat(tmpdir, &buf)) { + /* NOTE: popen will use the PARENT's /bin/sh, not the chroot's */ + if(stat("/bin/sh", &buf)) { /* not found */ - _alpm_log(PM_LOG_ERROR, _("No /bin/sh in root dir (%s), aborting scriptlet\n"), root); + _alpm_log(PM_LOG_ERROR, _("No /bin/sh in parent environment, aborting scriptlet\n")); return(0); } -- cgit v1.2.3-24-g4f1b