android_kernel_samsung_univ.../net/sunrpc
Tomáš Trnka 6c1e441c3b sunrpc: fix stripping of padded MIC tokens
commit c0cb8bf3a8e4bd82e640862cdd8891400405cb89 upstream.

The length of the GSS MIC token need not be a multiple of four bytes.
It is then padded by XDR to a multiple of 4 B, but unwrap_integ_data()
would previously only trim mic.len + 4 B. The remaining up to three
bytes would then trigger a check in nfs4svc_decode_compoundargs(),
leading to a "garbage args" error and mount failure:

nfs4svc_decode_compoundargs: compound not properly padded!
nfsd: failed to decode arguments!

This would prevent older clients using the pre-RFC 4121 MIC format
(37-byte MIC including a 9-byte OID) from mounting exports from v3.9+
servers using krb5i.

The trimming was introduced by commit 4c190e2f91 ("sunrpc: trim off
trailing checksum before returning decrypted or integrity authenticated
buffer").

Fixes: 4c190e2f91 "unrpc: trim off trailing checksum..."
Signed-off-by: Tomáš Trnka <ttrnka@mail.muni.cz>
Acked-by: Jeff Layton <jlayton@poochiereds.net>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-06-07 18:14:36 -07:00
..
auth_gss sunrpc: fix stripping of padded MIC tokens 2016-06-07 18:14:36 -07: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 kernel/params: constify struct kernel_param_ops uses 2015-05-28 11:32:10 +09:30
backchannel_rqst.c SUNRPC: Fix callback channel 2015-12-07 13:04:59 -08:00
cache.c sunrpc/cache: drop reference when sunrpc_cache_pipe_upcall() detects a race 2016-05-04 14:48:54 -07:00
clnt.c SUNRPC: Don't reencode message if transmission failed with ENOBUFS 2015-07-03 09:42:12 -04:00
debugfs.c SUNRPC: Address kbuild warning in net/sunrpc/debugfs.c 2015-06-11 14:01:06 -04:00
Kconfig rpcrdma: Merge svcrdma and xprtrdma modules into one 2015-06-04 16:56:02 -04:00
Makefile NFS client updates for Linux 4.2 2015-07-02 11:32:23 -07:00
netns.h
rpc_pipe.c VFS: net/: d_inode() annotations 2015-04-15 15:06:56 -04:00
rpcb_clnt.c
sched.c sched/wait: Fix the signal handling fix 2015-12-13 14:30:59 -08:00
socklib.c
stats.c
sunrpc_syms.c sunrpc: make debugfs file creation failure non-fatal 2015-04-23 14:42:27 -04:00
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 SUNRPC: Fix callback channel 2015-12-07 13:04:59 -08: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: Fixup socket wait for memory 2016-02-25 12:01:18 -08:00