summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2012-01-05 13:32:26 -0500
committerSteve Dickson <steved@redhat.com>2012-01-05 15:42:40 -0500
commit89dde6fbabf6590ad7ccccc1f20f371f27da2207 (patch)
treec2119bfccf5843c0c1417bfd370bd0464938e8ee
parent47e159ae88f03077a4746eb335d278399272f0ac (diff)
downloadnfs-utils-89dde6fbabf6590ad7ccccc1f20f371f27da2207.tar.gz
nfs-utils-89dde6fbabf6590ad7ccccc1f20f371f27da2207.tar.xz
nfs-utils-89dde6fbabf6590ad7ccccc1f20f371f27da2207.zip
mount.nfs: don't overwrite mount options from /etc/nfsmount.conf
The libmount (as well as mount(8)) ignores mount options from command line if running in restricted mode (suid, non-root-user) and all options are read from fstab only. It means that all options are replaced with stuff from fstab, including mount options from nfsmount.conf. This is bug. We have to apply fstab and then nfsmount.conf. Signed-off-by: Karel Zak <kzak@redhat.com> Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r--utils/mount/mount_libmount.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/utils/mount/mount_libmount.c b/utils/mount/mount_libmount.c
index e450d79..e8f17a9 100644
--- a/utils/mount/mount_libmount.c
+++ b/utils/mount/mount_libmount.c
@@ -346,6 +346,21 @@ static int mount_main(struct libmnt_context *cxt, int argc, char **argv)
if (chk_mountpoint(mount_point))
goto err;
+
+ /*
+ * The libmount strictly uses only options from fstab if running in
+ * restricted mode (suid, non-root user). This is done in
+ * mnt_context_prepare_mount() by default.
+ *
+ * We have to read fstab before nfsmount.conf, otherwise the options
+ * from nfsmount.conf will be ignored (overwrited).
+ */
+ rc = mnt_context_apply_fstab(cxt);
+ if (rc) {
+ nfs_error(_("%s: failed to apply fstab options\n"), progname);
+ goto err;
+ }
+
/*
* Concatenate mount options from the configuration file
*/