From 870f7029deeb83f4b96f80c7aded8ff2c44fba64 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Mon, 10 Dec 2007 14:57:45 -0500 Subject: [PATCH] --- yaml --- r: 79631 b: refs/heads/master c: cdcd7f9abc8c95524376835fbe8e11c5f7bf588e h: refs/heads/master i: 79629: 5dc588e0c66f3646aaed43de4092db2daceba352 79627: a8af457b2ff566140fda810beb76ab432595b541 79623: 1d80c2d74136ac0dcd0f4c5dddc4d0b2cb7b4249 79615: 93fd2e29a0d493aa2b28cb73654bff7702fb280f v: v3 --- [refs] | 2 +- trunk/fs/nfs/super.c | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 8c1b2416e0f6..5498b7049dd8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd00a8ff8e37815c9df49f5cf09786e441e1396b +refs/heads/master: cdcd7f9abc8c95524376835fbe8e11c5f7bf588e diff --git a/trunk/fs/nfs/super.c b/trunk/fs/nfs/super.c index c3d8fcf38523..038b20b38b22 100644 --- a/trunk/fs/nfs/super.c +++ b/trunk/fs/nfs/super.c @@ -600,16 +600,21 @@ static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) } /* - * Sanity-check a server address provided by the mount command + * Sanity-check a server address provided by the mount command. + * + * Address family must be initialized, and address must not be + * the ANY address for that family. */ static int nfs_verify_server_address(struct sockaddr *addr) { switch (addr->sa_family) { case AF_INET: { - struct sockaddr_in *sa = (struct sockaddr_in *) addr; - if (sa->sin_addr.s_addr != INADDR_ANY) - return 1; - break; + struct sockaddr_in *sa = (struct sockaddr_in *)addr; + return sa->sin_addr.s_addr != INADDR_ANY; + } + case AF_INET6: { + struct in6_addr *sa = &((struct sockaddr_in6 *)addr)->sin6_addr; + return !ipv6_addr_any(sa); } }