| From a1b6e490b91e11043a6e814a3d1a5a1ccde3c73a Mon Sep 17 00:00:00 2001 |
| From: Arnd Bergmann <arnd@arndb.de> |
| Date: Fri, 22 Mar 2019 15:07:11 +0100 |
| Subject: nfsd: avoid uninitialized variable warning |
| |
| [ Upstream commit 0ab88ca4bcf18ba21058d8f19220f60afe0d34d8 ] |
| |
| clang warns that 'contextlen' may be accessed without an initialization: |
| |
| fs/nfsd/nfs4xdr.c:2911:9: error: variable 'contextlen' is uninitialized when used here [-Werror,-Wuninitialized] |
| contextlen); |
| ^~~~~~~~~~ |
| fs/nfsd/nfs4xdr.c:2424:16: note: initialize the variable 'contextlen' to silence this warning |
| int contextlen; |
| ^ |
| = 0 |
| |
| Presumably this cannot happen, as FATTR4_WORD2_SECURITY_LABEL is |
| set if CONFIG_NFSD_V4_SECURITY_LABEL is enabled. |
| Adding another #ifdef like the other two in this function |
| avoids the warning. |
| |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: J. Bruce Fields <bfields@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| fs/nfsd/nfs4xdr.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c |
| index 3de42a729093..a3a3455826aa 100644 |
| --- a/fs/nfsd/nfs4xdr.c |
| +++ b/fs/nfsd/nfs4xdr.c |
| @@ -2420,8 +2420,10 @@ nfsd4_encode_fattr(struct xdr_stream *xdr, struct svc_fh *fhp, |
| __be32 status; |
| int err; |
| struct nfs4_acl *acl = NULL; |
| +#ifdef CONFIG_NFSD_V4_SECURITY_LABEL |
| void *context = NULL; |
| int contextlen; |
| +#endif |
| bool contextsupport = false; |
| struct nfsd4_compoundres *resp = rqstp->rq_resp; |
| u32 minorversion = resp->cstate.minorversion; |
| @@ -2906,12 +2908,14 @@ out_acl: |
| *p++ = cpu_to_be32(NFS4_CHANGE_TYPE_IS_TIME_METADATA); |
| } |
| |
| +#ifdef CONFIG_NFSD_V4_SECURITY_LABEL |
| if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) { |
| status = nfsd4_encode_security_label(xdr, rqstp, context, |
| contextlen); |
| if (status) |
| goto out; |
| } |
| +#endif |
| |
| attrlen = htonl(xdr->buf->len - attrlen_offset - 4); |
| write_bytes_to_xdr_buf(xdr->buf, attrlen_offset, &attrlen, 4); |
| -- |
| 2.20.1 |
| |