aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/release/3.0.43
-rw-r--r--winsup/cygwin/sec_acl.cc4
2 files changed, 5 insertions, 2 deletions
diff --git a/winsup/cygwin/release/3.0.4 b/winsup/cygwin/release/3.0.4
index e6632f4..eeed283 100644
--- a/winsup/cygwin/release/3.0.4
+++ b/winsup/cygwin/release/3.0.4
@@ -14,3 +14,6 @@ Bug Fixes
- Fix access to process list
Addresses: https://cygwin.com/ml/cygwin/2019-03/msg00253.html
+
+- Fix acl_to_text/acl_to_any_text returning EINVAL on empty acl
+ Addresses: https://cygwin.com/ml/cygwin/2019-03/msg00157.html
diff --git a/winsup/cygwin/sec_acl.cc b/winsup/cygwin/sec_acl.cc
index ce7910e..933bfa6 100644
--- a/winsup/cygwin/sec_acl.cc
+++ b/winsup/cygwin/sec_acl.cc
@@ -1638,8 +1638,8 @@ char *
__acltotext (aclent_t *aclbufp, int aclcnt, const char *prefix, char separator,
int options)
{
- if (!aclbufp || aclcnt < 1 || aclcnt > MAX_ACL_ENTRIES
- || aclsort32 (aclcnt, 0, aclbufp))
+ if (!aclbufp || aclcnt < 0 || aclcnt > MAX_ACL_ENTRIES
+ || (aclcnt > 0 && aclsort32 (aclcnt, 0, aclbufp)))
{
set_errno (EINVAL);
return NULL;