NFS: fix nfs_parse_ip_address() corner case
authorChuck Lever <chuck.lever@oracle.com>
Wed, 8 Oct 2008 19:38:10 +0000 (15:38 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 10 Oct 2008 18:41:51 +0000 (14:41 -0400)
commit5e2e7721f04c11e6dc4a74b33f05a0e1c0381e2e
tree2eaa3154bae5232012e1f1aa8fd7f59f98f9a7e5
parent456018d791ff4ef03d610f72486c637056bcd749
NFS: fix nfs_parse_ip_address() corner case

Bruce observed that nfs_parse_ip_address() will successfully parse an
IPv6 address that looks like this:

  "::1%"

A scope delimiter is present, but there is no scope ID following it.
This is harmless, as it would simply set the scope ID to zero.  However,
in some cases we would like to flag this as an improperly formed
address.

We are now also careful to reject addresses where garbage follows the
address (up to the length of the string), instead of ignoring the
non-address characters; and where the scope ID is nonsense (not a valid
device name, but also not numeric).  Before, both of these cases would
result in a harmless zero scope ID.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/super.c