[pacman-dev] [PATCH] Reopen stdin before chrooting

morganamilo morganamilo at archlinux.org
Thu Dec 31 18:13:55 UTC 2020


Fixes FS#68630

diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 7b19162c..4fb7fe3c 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -1135,12 +1135,6 @@ int main(int argc, char *argv[])
 		cleanup(EXIT_FAILURE);
 	}
 
-	if(config->sysroot && (chroot(config->sysroot) != 0 || chdir("/") != 0)) {
-		pm_printf(ALPM_LOG_ERROR,
-				_("chroot to '%s' failed: (%s)\n"), config->sysroot, strerror(errno));
-		cleanup(EXIT_FAILURE);
-	}
-
 	/* we support reading targets from stdin if a cmdline parameter is '-' */
 	if(alpm_list_find_str(pm_targets, "-")) {
 		if(!isatty(fileno(stdin))) {
@@ -1191,6 +1185,12 @@ int main(int argc, char *argv[])
 		}
 	}
 
+	if(config->sysroot && (chroot(config->sysroot) != 0 || chdir("/") != 0)) {
+		pm_printf(ALPM_LOG_ERROR,
+				_("chroot to '%s' failed: (%s)\n"), config->sysroot, strerror(errno));
+		cleanup(EXIT_FAILURE);
+	}
+
 	pm_printf(ALPM_LOG_DEBUG, "pacman v%s - libalpm v%s\n", PACKAGE_VERSION, alpm_version());
 
 	/* parse the config file */
-- 
2.30.0


More information about the pacman-dev mailing list