Commit 830c7150 authored by Chuck Lever's avatar Chuck Lever
Browse files

NFSD: Replace READ* macros in nfsd4_decode_xattr_name()

parent 3dfd0b0e
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -2117,25 +2117,22 @@ nfsd4_vbuf_from_vector(struct nfsd4_compoundargs *argp, struct xdr_buf *xdr,
static __be32
nfsd4_decode_xattr_name(struct nfsd4_compoundargs *argp, char **namep)
{
	DECODE_HEAD;
	char *name, *sp, *dp;
	u32 namelen, cnt;
	__be32 *p;

	READ_BUF(4);
	namelen = be32_to_cpup(p++);

	if (xdr_stream_decode_u32(argp->xdr, &namelen) < 0)
		return nfserr_bad_xdr;
	if (namelen > (XATTR_NAME_MAX - XATTR_USER_PREFIX_LEN))
		return nfserr_nametoolong;

	if (namelen == 0)
		goto xdr_error;

	READ_BUF(namelen);

		return nfserr_bad_xdr;
	p = xdr_inline_decode(argp->xdr, namelen);
	if (!p)
		return nfserr_bad_xdr;
	name = svcxdr_tmpalloc(argp, namelen + XATTR_USER_PREFIX_LEN + 1);
	if (!name)
		return nfserr_jukebox;

	memcpy(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN);

	/*
@@ -2148,14 +2145,14 @@ nfsd4_decode_xattr_name(struct nfsd4_compoundargs *argp, char **namep)

	while (cnt-- > 0) {
		if (*sp == '\0')
			goto xdr_error;
			return nfserr_bad_xdr;
		*dp++ = *sp++;
	}
	*dp = '\0';

	*namep = name;

	DECODE_TAIL;
	return nfs_ok;
}

/*