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:
committed by
Luca Boccassi
parent
d4317fe172
commit
7636caf5b3
+4
-4
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user