diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-05-22 18:56:26 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-05-22 18:56:26 +0000 |
commit | 3ad8ec85469e01d3fc3e96479444c8094f70020a (patch) | |
tree | 245ac7a5f37eeafdd9442ac4a3a4128c6d82e829 | |
parent | c1410a8d1ef1494e945c85cbe19903c2220547fe (diff) | |
download | cygnal-3ad8ec85469e01d3fc3e96479444c8094f70020a.tar.gz cygnal-3ad8ec85469e01d3fc3e96479444c8094f70020a.tar.bz2 cygnal-3ad8ec85469e01d3fc3e96479444c8094f70020a.zip |
* setfacl.c (setfacl): Change from void to int. Return 2 in case of
error.
(main): Return with error code from setfacl.
-rw-r--r-- | winsup/utils/ChangeLog | 6 | ||||
-rw-r--r-- | winsup/utils/setfacl.c | 21 |
2 files changed, 20 insertions, 7 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 11fd848a6..e37d2065a 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,9 @@ +2008-05-22 Corinna Vinschen <corinna@vinschen.de> + + * setfacl.c (setfacl): Change from void to int. Return 2 in case of + error. + (main): Return with error code from setfacl. + 2008-05-15 Corinna Vinschen <corinna@vinschen.de> * Makefile.in (CYGWIN_BINS): Remove ipcrm and ipcs. diff --git a/winsup/utils/setfacl.c b/winsup/utils/setfacl.c index deb0707f1..8dcce4a73 100644 --- a/winsup/utils/setfacl.c +++ b/winsup/utils/setfacl.c @@ -259,7 +259,7 @@ modacl (aclent_t *tgt, int tcnt, aclent_t *src, int scnt) return tcnt; } -void +int setfacl (action_t action, char *path, aclent_t *acls, int cnt) { aclent_t lacl[MAX_ACL_ENTRIES]; @@ -269,13 +269,19 @@ setfacl (action_t action, char *path, aclent_t *acls, int cnt) if (action == Set) { if (acl (path, SETACL, cnt, acls)) - perror (prog_name); - return; + { + perror (prog_name); + return 2; + } } - if ((lcnt = acl (path, GETACL, MAX_ACL_ENTRIES, lacl)) < 0 + else if ((lcnt = acl (path, GETACL, MAX_ACL_ENTRIES, lacl)) < 0 || (lcnt = modacl (lacl, lcnt, acls, cnt)) < 0 || (lcnt = acl (path, SETACL, lcnt, lacl)) < 0) - perror (prog_name); + { + perror (prog_name); + return 2; + } + return 0; } static void @@ -428,6 +434,7 @@ main (int argc, char **argv) int ropt = 0; aclent_t acls[MAX_ACL_ENTRIES]; int aclidx = 0; + int ret = 0; prog_name = strrchr (argv[0], '/'); if (prog_name == NULL) @@ -561,6 +568,6 @@ main (int argc, char **argv) break; } for (c = optind; c < argc; ++c) - setfacl (action, argv[c], acls, aclidx); - return 0; + ret |= setfacl (action, argv[c], acls, aclidx); + return ret; } |