aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs2xdr.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2010-11-15 20:26:22 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2010-11-15 20:44:29 -0500
commitac39612824e1fad8baf82c2841e42b2142af3445 (patch)
tree12a841ca751a50f324dc97963579002943d0c3c9 /fs/nfs/nfs2xdr.c
parent8cd51a0ccd1beda4482507769887c0be9d70f8c1 (diff)
downloadkernel_samsung_smdk4412-ac39612824e1fad8baf82c2841e42b2142af3445.zip
kernel_samsung_smdk4412-ac39612824e1fad8baf82c2841e42b2142af3445.tar.gz
kernel_samsung_smdk4412-ac39612824e1fad8baf82c2841e42b2142af3445.tar.bz2
NFS: readdir shouldn't read beyond the reply returned by the server
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs2xdr.c')
-rw-r--r--fs/nfs/nfs2xdr.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfs/nfs2xdr.c b/fs/nfs/nfs2xdr.c
index e6bf457..2563f76 100644
--- a/fs/nfs/nfs2xdr.c
+++ b/fs/nfs/nfs2xdr.c
@@ -423,7 +423,7 @@ nfs_xdr_readdirres(struct rpc_rqst *req, __be32 *p, void *dummy)
struct page **page;
size_t hdrlen;
unsigned int pglen, recvd;
- int status, nr = 0;
+ int status;
if ((status = ntohl(*p++)))
return nfs_stat_to_errno(status);
@@ -443,7 +443,7 @@ nfs_xdr_readdirres(struct rpc_rqst *req, __be32 *p, void *dummy)
if (pglen > recvd)
pglen = recvd;
page = rcvbuf->pages;
- return nr;
+ return pglen;
}
static void print_overflow_msg(const char *func, const struct xdr_stream *xdr)