This is the mail archive of the
cygwin-patches
mailing list for the Cygwin project.
[PATCH] Cygwin: get_posix_access: avoid negative subscript
- From: Ken Brown <kbrown at cornell dot edu>
- To: "cygwin-patches at cygwin dot com" <cygwin-patches at cygwin dot com>
- Date: Mon, 26 Aug 2019 17:43:45 +0000
- Subject: [PATCH] Cygwin: get_posix_access: avoid negative subscript
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu; dkim=pass header.d=cornell.edu; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rou1K0IOmeZE4hElYHqXzoRst8gpPo04YRGeHpAOVBE=; b=NYwfPPPi5QJmg8Zw14ZUjY1twquytfFkEb14waBxM6XVmO77tFq6dLKdTZWCgvVcM6QTGKuOrlKcDS0yCli7Qae7QG0extiRiedCS3k50nM0gxo/FGwxDpCGh83bkf7givOYprTtKtfQqa0h6of8aCy7qbV1MMcEkkuHHqmlDcx7hFBjYjCZUw8XljZiTpn8OM12vPR/4ePp8GGVJIYYOBVbvIPwWyOqflpe9XhTwy9lu6tA//T7cuT4kgXkKuiNr6JpmvbHfoNqZ1xRKUsUgzelr4JSGikqvdMd6WstuknIO6i4JA/k5QDUeyR12oT5gPL33CyOcvqmFuwQtv+fJw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PxrUmPleiEiplja0Iptjz1gfzwIs6C6ekjtJFz+5UR2b6HYnAMqK1rwhLX6nYQ4jzrQLf/P0MMAERIvI6r/ItMss3pd4X/GkmEgH/eEKzUSJFQS1rTj/VAwka+kE+JZswLFJHqIGEE6u2Dmjge1SbyQ8z9GKROBIA0pW5WBYl4cMXw6aVRdkRGWVeS6EC8eMpC0rSoLcmmw+lJ5fKftKRjg4dHBYrZO+IP3osNv7LnjVf/9w1I7F/mjmHSYyEpM8Sb6f/L+ennuBnpH3mMkJVXudenz5OKQ6VnblPnNt73TyfZho7CQ9kQSXcJOVYhehrUYp9Weti227kgexT3qduQ==
Don't refer to lacl[pos] unless we know that pos >= 0.
---
winsup/cygwin/sec_acl.cc | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/winsup/cygwin/sec_acl.cc b/winsup/cygwin/sec_acl.cc
index 933bfa69d..67749d7b1 100644
--- a/winsup/cygwin/sec_acl.cc
+++ b/winsup/cygwin/sec_acl.cc
@@ -807,9 +807,9 @@ get_posix_access (PSECURITY_DESCRIPTOR psd,
lacl[pos].a_id = ACL_UNDEFINED_ID;
lacl[pos].a_perm = CYG_ACE_MASK_TO_POSIX (ace->Mask);
aclsid[pos] = well_known_null_sid;
+ has_class_perm = true;
+ class_perm = lacl[pos].a_perm;
}
- has_class_perm = true;
- class_perm = lacl[pos].a_perm;
}
if (ace->Header.AceFlags & SUB_CONTAINERS_AND_OBJECTS_INHERIT)
{
@@ -820,9 +820,9 @@ get_posix_access (PSECURITY_DESCRIPTOR psd,
lacl[pos].a_id = ACL_UNDEFINED_ID;
lacl[pos].a_perm = CYG_ACE_MASK_TO_POSIX (ace->Mask);
aclsid[pos] = well_known_null_sid;
+ has_def_class_perm = true;
+ def_class_perm = lacl[pos].a_perm;
}
- has_def_class_perm = true;
- def_class_perm = lacl[pos].a_perm;
}
}
}
--
2.21.0