The maxcount is the maximum number of bytes for the LISTXATTRS4resok
result. This includes the cookie and the count for the name array,
thus subtract 12 bytes from the maxcount: 8 (cookie) + 4 (array count)
when filling up the name array.
Fixes: 23e50fe3a5e6 ("nfsd: implement the xattr functions and en/decode logic")
Signed-off-by: Jorge Mora <mora@netapp.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
         */
        cookie_offset = xdr->buf->len;
        count_offset = cookie_offset + 8;
-       p = xdr_reserve_space(xdr, 12);
+       p = xdr_reserve_space(xdr, XDR_UNIT * 3);
        if (!p) {
                status = nfserr_resource;
                goto out;
        sp = listxattrs->lsxa_buf;
        nuser = 0;
 
-       xdrleft = listxattrs->lsxa_maxcount;
+       /* Bytes left is maxcount - 8 (cookie) - 4 (array count) */
+       xdrleft = listxattrs->lsxa_maxcount - XDR_UNIT * 3;
 
        while (left > 0 && xdrleft > 0) {
                slen = strlen(sp);