linux_dsm_epyc7002/net/sunrpc
Benjamin Coddington 38b7631fbe nfs4: limit callback decoding to received bytes
A truncated cb_compound request will cause the client to decode null or
data from a previous callback for nfs4.1 backchannel case, or uninitialized
data for the nfs4.0 case. This is because the path through
svc_process_common() advances the request's iov_base and decrements iov_len
without adjusting the overall xdr_buf's len field.  That causes
xdr_init_decode() to set up the xdr_stream with an incorrect length in
nfs4_callback_compound().

Fixing this for the nfs4.1 backchannel case first requires setting the
correct iov_len and page_len based on the length of received data in the
same manner as the nfs4.0 case.

Then the request's xdr_buf length can be adjusted for both cases based upon
the remaining iov_len and page_len.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
2015-11-23 22:03:15 -05:00
..
auth_gss sunrpc: avoid warning in gss_key_timeout 2015-10-23 15:57:28 -04:00
xprtrdma NFS client updates for Linux 4.4 2015-11-09 18:11:22 -08:00
addr.c
auth_generic.c
auth_null.c
auth_unix.c sunrpc: increase UNX_MAXNODENAME from 32 to __NEW_UTS_LEN bytes 2015-08-12 14:31:04 -04:00
auth.c
backchannel_rqst.c nfs4: limit callback decoding to received bytes 2015-11-23 22:03:15 -05:00
cache.c sunrpc/cache: make cache flushing more reliable. 2015-10-23 15:57:30 -04:00
clnt.c SUNRPC: Don't reencode message if transmission failed with ENOBUFS 2015-07-03 09:42:12 -04:00
debugfs.c
Kconfig
Makefile NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
netns.h
rpc_pipe.c
rpcb_clnt.c
sched.c NFS client bugfixes for Linux 4.3 2015-09-25 11:33:52 -07:00
socklib.c
stats.c
sunrpc_syms.c
sunrpc.h
svc_xprt.c nfsd/sunrpc: turn enqueueing a svc_xprt into a svc_serv operation 2015-08-10 16:05:42 -04:00
svc.c nfs4: limit callback decoding to received bytes 2015-11-23 22:03:15 -05:00
svcauth_unix.c
svcauth.c
svcsock.c svcrpc: document lack of some memory barriers 2015-11-10 17:02:47 -05:00
sysctl.c Sunrpc: Supports hexadecimal number for sysctl files of sunrpc debug 2015-11-03 15:56:49 -05:00
timer.c
xdr.c
xprt.c SUNRPC: Lock the transport layer on shutdown 2015-09-19 16:37:43 -04:00
xprtsock.c SUNRPC: fix variable type 2015-11-03 12:31:31 -05:00