From 3ad8ec85469e01d3fc3e96479444c8094f70020a Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 22 May 2008 18:56:26 +0000 Subject: * setfacl.c (setfacl): Change from void to int. Return 2 in case of error. (main): Return with error code from setfacl. --- winsup/utils/setfacl.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'winsup/utils/setfacl.c') 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; } -- cgit v1.2.3