From 5f3e8dc9d268523560cae12fdb8e93663a3ead72 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Wed, 2 Mar 2005 00:54:41 +0000 Subject: [PATCH] do not assume 'nodev' on 'devpts' git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1876 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/src/secure-mount.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/util-vserver/src/secure-mount.c b/util-vserver/src/secure-mount.c index 37baa3c..08d83d4 100644 --- a/util-vserver/src/secure-mount.c +++ b/util-vserver/src/secure-mount.c @@ -406,9 +406,12 @@ mountSingle(struct MountInfo const *mnt, struct Options const *opt) return false; if (mnt->flag & (MS_BIND|MS_MOVE)) { + unsigned long flag = mnt->flag; + if ((flag & MS_NODEV)==0) flag |= MS_NODEV; + if (mount(mnt->src, ".", mnt->type ? mnt->type : "", - mnt->flag, mnt->data)==-1) { + flag, mnt->data)==-1) { perror("secure-mount: mount()"); return false; } @@ -490,12 +493,14 @@ static enum {prDOIT, prFAIL, prIGNORE} info->data = buf; MOVE_TO_NEXT_FIELD(buf, true); - if (strcmp(info->type, "swap")==0) return prIGNORE; - if (strcmp(info->type, "none")==0) info->type = 0; - info->flag = MS_NODEV; info->mask = 0; info->xflag = 0; + + if (strcmp(info->type, "swap") ==0) return prIGNORE; + else if (strcmp(info->type, "none") ==0) info->type = 0; + else if (strcmp(info->type, "devpts")==0) info->mask |= MS_NODEV; + if (col) *col = err_col; if (!transformOptionList(info,col)) return prFAIL; if (info->xflag & XFLAG_NOAUTO) return prIGNORE; -- 1.8.1.5