X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fmount%2Fnfsumount.c;h=c5505b1edf6d436532f93310f0d2a433e70c19a2;hp=9b48cc9a63239d9c92eb89edf31cdfd56476ae72;hb=74badf6f30f7aea95e9d784244488084dbadcb55;hpb=2b8bc77817f45759346593eaedebaacddea05978 diff --git a/utils/mount/nfsumount.c b/utils/mount/nfsumount.c index 9b48cc9..c5505b1 100644 --- a/utils/mount/nfsumount.c +++ b/utils/mount/nfsumount.c @@ -174,7 +174,14 @@ static int nfs_umount_do_umnt(struct mount_options *options, socklen_t salen = sizeof(address); struct pmap nfs_pmap, mnt_pmap; - nfs_options2pmap(options, &nfs_pmap, &mnt_pmap); + if (!nfs_options2pmap(options, &nfs_pmap, &mnt_pmap)) { + nfs_error(_("%s: bad mount options"), progname); + return EX_FAIL; + } + + /* Skip UMNT call for vers=4 mounts */ + if (nfs_pmap.pm_vers == 4) + return EX_SUCCESS; *hostname = nfs_umount_hostname(options, *hostname); if (!*hostname) { @@ -333,7 +340,7 @@ int nfsumount(int argc, char *argv[]) char *opt = hasmntopt(&mc->m, "user"); struct passwd *pw; char *comma; - int len; + size_t len; if (!opt) goto only_root; if (opt[4] != '=')