@@ -1124,7 +1124,7 @@ static void encode_attrs(struct xdr_stream *xdr, const struct iattr *iap,
} else
*p++ = cpu_to_be32(NFS4_SET_TO_SERVER_TIME);
}
- if (bmval[2] & FATTR4_WORD2_SECURITY_LABEL) {
+ if (label && bmval[2] & FATTR4_WORD2_SECURITY_LABEL) {
*p++ = cpu_to_be32(label->lfs);
*p++ = cpu_to_be32(label->pi);
*p++ = cpu_to_be32(label->len);
@@ -1132,7 +1132,8 @@ static void encode_attrs(struct xdr_stream *xdr, const struct iattr *iap,
}
if (bmval[2] & FATTR4_WORD2_MODE_UMASK) {
*p++ = cpu_to_be32(iap->ia_mode & S_IALLUGO);
- *p++ = cpu_to_be32(*umask);
+ if (umask != NULL)
+ *p++ = cpu_to_be32(*umask);
}
/* out: */
''' Error: FORWARD_NULL (CWE-476): [#def3702] .../fs/nfs/nfs4xdr.c:1085: var_compare_op: Comparing "label" to null implies that "label" might be null. .../fs/nfs/nfs4xdr.c:1129: var_deref_op: Dereferencing null pointer "label". 1127| } 1128| if (bmval[2] & FATTR4_WORD2_SECURITY_LABEL) { 1129|-> *p++ = cpu_to_be32(label->lfs); 1130| *p++ = cpu_to_be32(label->pi); 1131| *p++ = cpu_to_be32(label->len); Error: FORWARD_NULL (CWE-476): [#def3703] .../fs/nfs/nfs4xdr.c:1027: var_compare_op: Comparing "umask" to null implies that "umask" might be null. .../fs/nfs/nfs4xdr.c:1136: var_deref_op: Dereferencing null pointer "umask". 1134| if (bmval[2] & FATTR4_WORD2_MODE_UMASK) { 1135| *p++ = cpu_to_be32(iap->ia_mode & S_IALLUGO); 1136|-> *p++ = cpu_to_be32(*umask); 1137| } ''' Signed-off-by: Jianhong Yin <yin-jianhong@163.com> --- fs/nfs/nfs4xdr.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)