From eefe29d99ae8dfbbbfcc45f2e7282c5645b20ad9 Mon Sep 17 00:00:00 2001 From: Aurelien Foret Date: Thu, 16 Feb 2006 21:07:34 +0000 Subject: fixed directory roots when running scriplets --- lib/libalpm/util.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/libalpm/util.c') 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); -- cgit v1.2.3