From: Neil Brown Date: Thu, 1 Nov 2007 05:04:59 +0000 (+1100) Subject: probe_port should not try other versions in a version was explicitly given. X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=5405f58c7803f451c1d529623245062263501738;p=nfs-utils.git probe_port should not try other versions in a version was explicitly given. Currently if probe port is asked to probe for a specific version, and that version is not supported, it will probe other versions too. This means that if mountd is run with "--no-nfs-version 3", It will first probe for NFS version 3, which will succeed (assuming the kernel supported NFSv3), then it will check the matching mountd version (3) and probe_port on discovering that isn't supported will try other versions, find "1" is supported will succeed. This leaves up using mount version 1 for an NFSv3 mount, which doesn't work and leads to a SIGSEGV There is no case where trying other versions is needed the request one is not supported, so simply remove that code. --- diff --git a/utils/mount/network.c b/utils/mount/network.c index 63d5f5a..2b09457 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -417,10 +417,6 @@ static int probe_port(clnt_addr_t *server, const unsigned long *versions, continue; p_prot = protos; } - if (vers == pmap->pm_vers) { - p_vers = versions; - vers = 0; - } if (vers || !*++p_vers) break; }