[lxc-devel] [PATCH 2/1] proc update - don't assume we are pid 1
Serge Hallyn
serge.hallyn at ubuntu.com
Sun May 17 20:14:13 UTC 2015
(I erred in the first patch, causing every lxc-attach to unmount the
container-'s /proc)
Since we now use mount_proc_if_needed() from attach, as opposed to only
from start, we cannot assume we are pid 1. So fix the check for whether
to mount a new proc.
Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
src/lxc/utils.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/lxc/utils.c b/src/lxc/utils.c
index 0588fdd..e56f4a3 100644
--- a/src/lxc/utils.c
+++ b/src/lxc/utils.c
@@ -1679,6 +1679,7 @@ int mount_proc_if_needed(const char *rootfs)
char path[MAXPATHLEN];
char link[20];
int linklen, ret;
+ int mypid;
ret = snprintf(path, MAXPATHLEN, "%s/proc/self", rootfs);
if (ret < 0 || ret >= MAXPATHLEN) {
@@ -1687,12 +1688,12 @@ int mount_proc_if_needed(const char *rootfs)
}
memset(link, 0, 20);
linklen = readlink(path, link, 20);
- INFO("I am %d, /proc/self points to '%s'", getpid(), link);
+ mypid = (int)getpid();
+ INFO("I am %d, /proc/self points to '%s'", mypid, link);
ret = snprintf(path, MAXPATHLEN, "%s/proc", rootfs);
if (linklen < 0) /* /proc not mounted */
goto domount;
- /* can't be longer than rootfs/proc/1 */
- if (strncmp(link, "1", linklen) != 0) {
+ if (atoi(link) != mypid) {
/* wrong /procs mounted */
umount2(path, MNT_DETACH); /* ignore failure */
goto domount;
--
2.1.4
More information about the lxc-devel
mailing list