libexport: Fix IP address check in check_netgroup()
authorChuck Lever <chuck.lever@oracle.com>
Tue, 24 Aug 2010 11:13:54 +0000 (07:13 -0400)
committerSteve Dickson <steved@redhat.com>
Tue, 24 Aug 2010 11:22:51 +0000 (07:22 -0400)
commit1bb84a09ff58d1314826945db2f3f1f63015e263
tree7f092de9a907e2badf0d4125f89a16a18774b47c
parentabdc32b6af6f38a741a481aeefb5623916152498
libexport: Fix IP address check in check_netgroup()

Neil Brown reports that recent changes to replace
gethostby{addr,name}(3) with get{addr,info}name(3) may have
inadvertently broken netgroup support.

There used to be a gethostbyaddr(3) call in the third paragraph in
check_netgroup().  The reason for that gethostbyaddr(3) call was that
the first innetgr(3) call has already confirmed that hname is not a
member of the netgroup.  We also need to confirm that, if hname
happens to be an IP address, the hostname bound to that IP address is
not a member of the netgroup, either.

Fix this by restoring appropriate address to hostname mapping of hname
before retrying the innetgr(3) call.

See http://marc.info/?l=linux-nfs&m=128084830214653&w=2 .

Introduced by commit 0509d3428f523776ddd9d6e9fa318587d3ec7d84.

Reviewed-by: Neil Brown <neilb@suse.de>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
support/export/client.c