From dd3b64c17f04d5011244acf50b857ab8987a6e65 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 9 Nov 2018 14:13:47 -0800 Subject: [PATCH] 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 --- source3/modules/vfs_fake_acls.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) 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; -- 2.19.1.930.g4563a0d9d0-goog