decode_attr_filehandle still needs to skip the XDR-encoded filehandle if
someone passes a null pointer argument.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
__be32 *p;
int len;
- if (fh == NULL) {
- bitmap[0] &= ~FATTR4_WORD0_FILEHANDLE;
- return 0;
- }
-
- memset(fh, 0, sizeof(*fh));
+ if (fh != NULL)
+ memset(fh, 0, sizeof(*fh));
if (unlikely(bitmap[0] & (FATTR4_WORD0_FILEHANDLE - 1U)))
return -EIO;
len = be32_to_cpup(p);
if (len > NFS4_FHSIZE)
return -EIO;
- fh->size = len;
p = xdr_inline_decode(xdr, len);
if (unlikely(!p))
goto out_overflow;
- memcpy(fh->data, p, len);
+ if (fh != NULL) {
+ memcpy(fh->data, p, len);
+ fh->size = len;
+ }
bitmap[0] &= ~FATTR4_WORD0_FILEHANDLE;
}
return 0;