Mount an empty /dev/shm tmpfs in the chroot

This ensures that whatever the builder writes in /dev/shm is
automatically cleaned up.
This commit is contained in:
Eelco Dolstra 2012-06-27 09:52:27 -04:00
parent 3ee208516f
commit 42f5a2fc29

View file

@ -1869,6 +1869,12 @@ void DerivationGoal::initChild()
if (mount("none", (chrootRootDir + "/proc").c_str(), "proc", 0, 0) == -1) if (mount("none", (chrootRootDir + "/proc").c_str(), "proc", 0, 0) == -1)
throw SysError("mounting /proc"); throw SysError("mounting /proc");
/* Mount a new tmpfs on /dev/shm to ensure that whatever
the builder puts in /dev/shm is cleaned up automatically. */
if (pathExists("/dev/shm"))
if (mount("none", (chrootRootDir + "/dev/shm").c_str(), "tmpfs", 0, 0) == -1)
throw SysError("mounting /dev/shm");
/* Do the chroot(). Below we do a chdir() to the /* Do the chroot(). Below we do a chdir() to the
temporary build directory to make sure the current temporary build directory to make sure the current
directory is in the chroot. (Actually the order directory is in the chroot. (Actually the order