summaryrefslogtreecommitdiffstats
path: root/sys-utils/mount.c
diff options
context:
space:
mode:
authorRichard Tollerton2013-01-03 07:05:34 +0100
committerKarel Zak2013-01-09 14:47:25 +0100
commit1707b9b104c4fb55eaa37581d6d7355a20cd9576 (patch)
treebfd1b99264150b5cd5375915a1de3832d7f76a56 /sys-utils/mount.c
parentmkfs.minix: fix compiler warning [-Wformat] (diff)
downloadkernel-qcow2-util-linux-1707b9b104c4fb55eaa37581d6d7355a20cd9576.tar.gz
kernel-qcow2-util-linux-1707b9b104c4fb55eaa37581d6d7355a20cd9576.tar.xz
kernel-qcow2-util-linux-1707b9b104c4fb55eaa37581d6d7355a20cd9576.zip
mount: Fix -t in listing mode when run as non-root
Presently, libmount-mount completely prohibits the use of -t by non-root users. This breaks using -t in listing mode as a user, which represents a regression against mount-deprecated, macosx and presumably *BSD. This commit fixes the issue by deferring the mnt_context_is_restricted check for -t until we know we're not in listing mode. Signed-off-by: Rich Tollerton <rich.tollerton@ni.com>
Diffstat (limited to 'sys-utils/mount.c')
-rw-r--r--sys-utils/mount.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys-utils/mount.c b/sys-utils/mount.c
index e29e34cfd..fed96eb7b 100644
--- a/sys-utils/mount.c
+++ b/sys-utils/mount.c
@@ -800,7 +800,7 @@ int main(int argc, char **argv)
/* only few options are allowed for non-root users */
if (mnt_context_is_restricted(cxt) &&
- !strchr("hlLUVvpris", c) &&
+ !strchr("hlLUVvprist", c) &&
c != MOUNT_OPT_TARGET &&
c != MOUNT_OPT_SOURCE)
exit_non_root(option_to_longopt(c, longopts));
@@ -950,6 +950,11 @@ int main(int argc, char **argv)
goto done;
}
+ /* Non-root users are allowed to use -t to print_all(),
+ but not to mount */
+ if (mnt_context_is_restricted(cxt) && types)
+ exit_non_root("types");
+
if (oper && (types || all || mnt_context_get_source(cxt)))
usage(stderr);