NFS: Prevent memory allocation failure in nfsacl_encode()
authorChuck Lever <chuck.lever@oracle.com>
Fri, 21 Jan 2011 03:05:38 +0000 (03:05 +0000)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 25 Jan 2011 20:24:47 +0000 (15:24 -0500)
commitf61f6da0d53842e849bab7f69e1431bd3de1136d
tree8433904f645695338b98d3dc831631ffd6f129e5
parent731f3f482ad3b2c58a1af2d0a9a634a82803706a
NFS: Prevent memory allocation failure in nfsacl_encode()

nfsacl_encode() allocates memory in certain cases.  This of course
is not guaranteed to work.

Since commit 9f06c719 "SUNRPC: New xdr_streams XDR encoder API", the
kernel's XDR encoders can't return a result indicating possibly a
failure, so a memory allocation failure in nfsacl_encode() has become
fatal (ie, the XDR code Oopses) in some cases.

However, the allocated memory is a tiny fixed amount, on the order
of 40-50 bytes.  We can easily use a stack-allocated buffer for
this, with only a wee bit of nose-holding.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs3acl.c
fs/nfs_common/nfsacl.c
fs/posix_acl.c
include/linux/posix_acl.h