diff --git a/fs/nfs/nfs2xdr.c b/fs/nfs/nfs2xdr.c index 428f72bf356f9d31d8b7c2d1617508f823a92e0b..fbc5d5ca2d700cda60da11a107e0c4600f5922d2 100644 --- a/fs/nfs/nfs2xdr.c +++ b/fs/nfs/nfs2xdr.c @@ -434,7 +434,7 @@ nfs_xdr_readdirres(struct rpc_rqst *req, u32 *p, void *dummy) goto short_pkt; entry = p; } - if (!nr) + if (!nr && (entry[0] != 0 || entry[1] != 1)) goto short_pkt; out: kunmap(*page); diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c index fcc8a4fbade8f81439c29ac5764c900574d117eb..b5830e2c2614fbe26dd88dabeb88b590483000f2 100644 --- a/fs/nfs/nfs3xdr.c +++ b/fs/nfs/nfs3xdr.c @@ -579,7 +579,7 @@ nfs3_xdr_readdirres(struct rpc_rqst *req, u32 *p, struct nfs3_readdirres *res) goto short_pkt; entry = p; } - if (!nr) + if (!nr && (entry[0] != 0 || entry[1] != 1)) goto short_pkt; out: kunmap(*page);