diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libalpm/util.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index 6a256096..49580c36 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -405,7 +405,9 @@ int _alpm_runscriptlet(char *root, char *installfn, char *script, char *ver, cha } /* just in case our cwd was removed in the upgrade operation */ - chdir("/"); + if(chdir(root) != 0) { + _alpm_log(PM_LOG_ERROR, "could not change directory to %s (%s)", root, strerror(errno)); + } _alpm_log(PM_LOG_FLOW2, "executing %s script...", script); @@ -431,6 +433,10 @@ int _alpm_runscriptlet(char *root, char *installfn, char *script, char *ver, cha _alpm_log(PM_LOG_ERROR, "could not change the root directory (%s)", strerror(errno)); return(1); } + if(chdir("/") != 0) { + _alpm_log(PM_LOG_ERROR, "could not change directory to / (%s)", strerror(errno)); + return(1); + } umask(0022); _alpm_log(PM_LOG_DEBUG, "executing \"%s\"", cmdline); execl("/bin/sh", "sh", "-c", cmdline, (char *)0); |