Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2002-11-25 14:23:21 +0300
committerCorinna Vinschen <corinna@vinschen.de>2002-11-25 14:23:21 +0300
commitf1da8a066438b2323253e11b10a4037205c1b3c2 (patch)
treec73330658c3d3eadfe850718179a2ce949ee7d51
parent19f209011a58c2694690b88c8be85fd029f1a88f (diff)
* sec_acl.cc (getacl): Set errno to ENOSPC if command is GETACL and
nentries is less than the number of entries in the file's ACL.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/sec_acl.cc5
2 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 93903fd34..53caea2ff 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2002-11-25 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (getacl): Set errno to ENOSPC if command is GETACL and
+ nentries is less than the number of entries in the file's ACL.
+
2002-11-24 Corinna Vinschen <corinna@vinschen.de>
* sec_acl.cc: Fix some formatting. Only set and check `other' bits in
diff --git a/winsup/cygwin/sec_acl.cc b/winsup/cygwin/sec_acl.cc
index 43f301209..51ac03526 100644
--- a/winsup/cygwin/sec_acl.cc
+++ b/winsup/cygwin/sec_acl.cc
@@ -380,7 +380,10 @@ getacl (const char *file, DWORD attr, int nentries, __aclent16_t *aclbufp)
if (EqualSid (owner_sid, group_sid))
lacl[0].a_perm = lacl[1].a_perm;
if (pos > nentries)
- pos = nentries;
+ {
+ set_errno (ENOSPC);
+ return -1;
+ }
memcpy (aclbufp, lacl, pos * sizeof (__aclent16_t));
for (i = 0; i < pos; ++i)
aclbufp[i].a_perm &= ~(DENY_R | DENY_W | DENY_X);