mountd: Add the missing '$' in auth_unix_ip()
authorJose Castillo <jcastillo@redhat.com>
Fri, 19 Apr 2013 14:51:57 +0000 (10:51 -0400)
committerSteve Dickson <steved@redhat.com>
Mon, 22 Apr 2013 16:47:20 +0000 (12:47 -0400)
commit85352dd5ffd0d9a451b79fa61d24a518b553d280
tree5d68ca426644b7dc50df28a20b9d3161205e5bcb
parent5acc87a87c012766a9d7f4e2f07e5de455e566e3
mountd: Add the missing '$' in auth_unix_ip()

We found this problem because NFS clients to a RHEL6 NFS server were
experiencing periods of ESTALE errors after being mounted and initially
working successfully. Tests were run which snapshotted the nfs/sunrpc
caches before and after the issue, and it was found that the '$'
character
at the beginning of the ID strings, used when in use_ipaddr mode, was
getting
lost:

GOOD, while mount was working:
nfsd 1.2.3.4 $1.2.3.4

BAD, after mount started returning ESTALE:
nfsd 1.2.3.4 1.2.3.4

This would then cause the export checks to fail by passing '1.2.3.4'
instead of '$1.2.3.4' up to rpc.mountd.

The problem appears to be in the auth_unix_ip() function when renewing
the auth.unix.ip cache entry.  It would fail to add the '$' character
back to the beginning of the string used for the domain string,
breaking the use_ipaddr mode.

Signed-off-by: Jose Castillo <jcastillo@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
utils/mountd/cache.c