virt: also check if PID1 is in chroot

In PID1, running_in_chroot() is called by safety_checks(), but without
this change, the check did nothing.
This commit is contained in:
Yu Watanabe
2023-11-03 16:05:52 +00:00
committed by Luca Boccassi
parent d4317fe172
commit 7636caf5b3
+4 -4
View File
@@ -886,15 +886,15 @@ int running_in_chroot(void) {
if (getenv_bool("SYSTEMD_IGNORE_CHROOT") > 0)
return 0;
if (getpid_cached() == 1)
return false; /* We're PID 1, we can't be in a chroot. */
r = inode_same("/proc/1/root", "/", 0);
if (r == -ENOENT) {
r = proc_mounted();
if (r == 0) {
if (getpid_cached() == 1)
return false; /* We will mount /proc, assuming we're not in a chroot. */
log_debug("/proc is not mounted, assuming we're in a chroot.");
return 1;
return true;
}
if (r > 0) /* If we have fake /proc/, we can't do the check properly. */
return -ENOSYS;