From: Jeremy Allison Date: Fri, 9 Nov 2018 22:13:47 +0000 (-0800) Subject: s3: VFS: fake_acls: Fix Coverity CID 1435850 Uninitialized pointer read. X-Git-Tag: tdb-1.3.17~751 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b79d5f2a2f8af75ef13bdc41d2dc296e19ba098;p=thirdparty%2Fsamba.git s3: VFS: fake_acls: Fix Coverity CID 1435850 Uninitialized pointer read. map_acl_perms_to_permset() can return an error, check it. Signed-off-by: Jeremy Allison Reviewed-by: Andreas Schneider --- diff --git a/source3/modules/vfs_fake_acls.c b/source3/modules/vfs_fake_acls.c index 616f332e342..ba94c8db06f 100644 --- a/source3/modules/vfs_fake_acls.c +++ b/source3/modules/vfs_fake_acls.c @@ -568,7 +568,10 @@ static int fake_acl_process_chmod(SMB_ACL_T *pp_the_acl, } switch (tagtype) { case SMB_ACL_USER_OBJ: - map_acl_perms_to_permset(umode, &permset); + ret = map_acl_perms_to_permset(umode, &permset); + if (ret == -1) { + return -1; + } break; case SMB_ACL_USER: puid = (uid_t *)sys_acl_get_qualifier(entry); @@ -578,18 +581,27 @@ static int fake_acl_process_chmod(SMB_ACL_T *pp_the_acl, if (owner != *puid) { break; } - map_acl_perms_to_permset(umode, &permset); + ret = map_acl_perms_to_permset(umode, &permset); + if (ret == -1) { + return -1; + } break; case SMB_ACL_GROUP_OBJ: case SMB_ACL_GROUP: /* Ignore all group entries. */ break; case SMB_ACL_MASK: - map_acl_perms_to_permset(mmode, &permset); + ret = map_acl_perms_to_permset(mmode, &permset); + if (ret == -1) { + return -1; + } got_mask = true; break; case SMB_ACL_OTHER: - map_acl_perms_to_permset(omode, &permset); + ret = map_acl_perms_to_permset(omode, &permset); + if (ret == -1) { + return -1; + } break; default: errno = EINVAL; @@ -614,7 +626,10 @@ static int fake_acl_process_chmod(SMB_ACL_T *pp_the_acl, if (ret == -1) { return -1; } - map_acl_perms_to_permset(mmode, &mask_permset); + ret = map_acl_perms_to_permset(mmode, &mask_permset); + if (ret == -1) { + return -1; + } ret = sys_acl_set_permset(mask_entry, mask_permset); if (ret == -1) { return -1;