linux/net/sunrpc
Chuck Lever 776bd5c7a2 SUNRPC: Don't flag empty RPCB_GETADDR reply as bogus
In 2007, commit e65fe3976f added
additional sanity checking to rpcb_decode_getaddr() to make sure we
were getting a reply that was long enough to be an actual universal
address.  If the uaddr string isn't long enough, the XDR decoder
returns EIO.

However, an empty string is a valid RPCB_GETADDR response if the
requested service isn't registered.  Moreover, "::.n.m" is also a
valid RPCB_GETADDR response for IPv6 addresses that is shorter
than rpcb_decode_getaddr()'s lower limit of 11.  So this sanity
check introduced a regression for rpcbind requests against IPv6
remotes.

So revert the lower bound check added by commit
e65fe3976f, and add an explicit check
for an empty uaddr string, similar to libtirpc's rpcb_getaddr(3).

Pointed-out-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2009-03-28 15:52:08 -04:00
..
auth_gss rpc: add service field to new upcall 2008-12-23 16:19:56 -05:00
xprtrdma SVCRDMA: fix recent printk format warnings. 2009-03-19 15:17:37 -04:00
auth_generic.c SUNRPC: Fix a performance regression in the RPC authentication code 2008-11-20 13:17:40 -08:00
auth_null.c
auth_unix.c
auth.c Merge branch 'devel' into next 2008-12-30 16:51:43 -05:00
cache.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
clnt.c SUNRPC: Return EAGAIN instead of ENOTCONN when waking up xprt->pending 2009-03-11 14:38:00 -04:00
Kconfig sunrpc: fix rdma dependencies 2009-02-03 15:20:13 -08:00
Makefile
rpc_pipe.c zero i_uid/i_gid on inode allocation 2009-01-05 11:54:28 -05:00
rpcb_clnt.c SUNRPC: Don't flag empty RPCB_GETADDR reply as bogus 2009-03-28 15:52:08 -04:00
sched.c SUNRPC: Tighten up the task locking rules in __rpc_execute() 2009-03-10 20:33:16 -04:00
socklib.c
stats.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
sunrpc_syms.c
svc_xprt.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
svc.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
svcauth_unix.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
svcauth.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
svcsock.c SUNRPC: The sunrpc server code should not be used by out-of-tree modules 2009-01-07 17:18:42 -05:00
sysctl.c
timer.c
xdr.c SUNRPC: Convert the xdr helpers and rpc_pipefs to EXPORT_SYMBOL_GPL 2008-12-23 15:21:31 -05:00
xprt.c SUNRPC: Return EAGAIN instead of ENOTCONN when waking up xprt->pending 2009-03-11 14:38:00 -04:00
xprtsock.c SUNRPC: Ensure we close the socket on EPIPE errors too... 2009-03-19 15:17:36 -04:00