summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/libalpm/util.c8
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);