NFSv4.2: Always decode the security label
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 18 Oct 2022 21:41:30 +0000 (17:41 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:32:18 +0000 (13:32 +0100)
[ Upstream commit c8a62f440229ae7a10874776344dfcc17d860336 ]

If the server returns a reply that includes a security label, then we
must decode it whether or not we can store the results.

Fixes: 1e2f67da8931 ("NFS: Remove the nfs4_label argument from decode_getattr_*() functions")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfs/nfs4xdr.c

index 8c5298e..9103e02 100644 (file)
@@ -4755,12 +4755,10 @@ static int decode_getfattr_attrs(struct xdr_stream *xdr, uint32_t *bitmap,
        if (status < 0)
                goto xdr_error;
 
-       if (fattr->label) {
-               status = decode_attr_security_label(xdr, bitmap, fattr->label);
-               if (status < 0)
-                       goto xdr_error;
-               fattr->valid |= status;
-       }
+       status = decode_attr_security_label(xdr, bitmap, fattr->label);
+       if (status < 0)
+               goto xdr_error;
+       fattr->valid |= status;
 
 xdr_error:
        dprintk("%s: xdr returned %d\n", __func__, -status);