diff options
author | Neil Brown <neilb@suse.de> | 2007-03-20 12:50:04 +1100 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2007-03-20 12:50:04 +1100 |
commit | 4bc447f758ee4d64706b990ac68cb766dbff113c (patch) | |
tree | fea2dd1b4b588e104ae2d95f6ba5efaa5919bced | |
parent | 44a3727a3243e674a1f1fdad5cbbc639aa25d01c (diff) | |
download | nfs-utils-4bc447f758ee4d64706b990ac68cb766dbff113c.tar.gz nfs-utils-4bc447f758ee4d64706b990ac68cb766dbff113c.tar.xz nfs-utils-4bc447f758ee4d64706b990ac68cb766dbff113c.zip |
umount.nfs - more strict checks on command line args.
Reject if there are non-flag args,
Reject if the filesystem is not an NFS filesystem.
-rw-r--r-- | utils/mount/nfsumount.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/utils/mount/nfsumount.c b/utils/mount/nfsumount.c index 1decf07..e101105 100644 --- a/utils/mount/nfsumount.c +++ b/utils/mount/nfsumount.c @@ -313,6 +313,10 @@ int nfsumount(int argc, char *argv[]) return 0; } } + if (optind != argc) { + umount_usage(); + return 0; + } if (spec == NULL || (*spec != '/' && strchr(spec,':') == NULL)) { printf(_("umount: %s: not found\n"), spec); @@ -326,6 +330,13 @@ int nfsumount(int argc, char *argv[]) if (!mc && verbose) printf(_("Could not find %s in mtab\n"), spec); + if (mc && strcmp(mc->m.mnt_type, "nfs") != 0 && + strcmp(mc->m.mnt_type, "nfs4") != 0) { + fprintf(stderr, "umount.nfs: %s on %s it not an nfs filesystem\n", + mc->m.mnt_fsname, mc->m.mnt_dir); + exit(1); + } + if (getuid() != 0) { /* only permitted if "user=" or "users" is in mount options */ if (!mc) { |