preserve failed setfacl return code

This commit is contained in:
Lukáš Zaoral 2023-10-06 11:57:04 +02:00 committed by root
parent 96adaf6db9
commit bdd3da07dc
3 changed files with 69 additions and 1 deletions

1
.acl.metadata Normal file
View File

@ -0,0 +1 @@
a5343e9f75326ffe5aa8d5d042e52227a3fd66cb acl-2.3.1.tar.gz

View File

@ -0,0 +1,60 @@
From 7ce89c695e76ec41fcebd83f8b728f63b0361a2d Mon Sep 17 00:00:00 2001
From: Renaud Metrich <rmetrich@redhat.com>
Date: Thu, 5 Oct 2023 11:17:51 +0200
Subject: [PATCH] setfacl: preserve the failed status when processing multiple
files
Resolves the following bug:
```
$ mkdir FOO
$ setfacl -m d:g:user:rwX -m g:user:rwX ./FOO/bar ./FOO
setfacl: ./FOO/bar: No such file or directory
$ echo $?
0
```
(Cleanup added while applying.)
Upstream-commit: 7ce89c695e76ec41fcebd83f8b728f63b0361a2d
---
tools/setfacl.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tools/setfacl.c b/tools/setfacl.c
index fd0bf2e..4140276 100644
--- a/tools/setfacl.c
+++ b/tools/setfacl.c
@@ -332,7 +332,7 @@ int main(int argc, char *argv[])
{
int opt;
int saw_files = 0;
- int status = 0;
+ int status = 0, status2;
FILE *file;
int which;
int lineno;
@@ -555,7 +555,9 @@ int main(int argc, char *argv[])
goto synopsis;
saw_files = 1;
- status = next_file(optarg, seq);
+ status2 = next_file(optarg, seq);
+ if (status == 0)
+ status = status2;
break;
case 'B': /* restore ACL backup */
@@ -642,7 +644,9 @@ int main(int argc, char *argv[])
goto synopsis;
saw_files = 1;
- status = next_file(argv[optind++], seq);
+ status2 = next_file(argv[optind++], seq);
+ if (status == 0)
+ status = status2;
}
if (!saw_files)
goto synopsis;
--
2.41.0

View File

@ -1,7 +1,7 @@
Summary: Access control list utilities
Name: acl
Version: 2.3.1
Release: 3%{?dist}
Release: 4%{?dist}
BuildRequires: gawk
BuildRequires: gcc
BuildRequires: gettext
@ -15,6 +15,10 @@ Source: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar
# avoid permission denied problem with LD_PRELOAD in the test-suite
Patch1: 0001-acl-2.2.53-test-runwrapper.patch
# preserve failed setfacl return code (RHEL-11833)
# https://git.savannah.nongnu.org/cgit/acl.git/commit/?id=7ce89c695e76ec41fcebd83f8b728f63b0361a2d
Patch2: 0001-acl-2.3.1-setfacl-preserve-failed-status.patch
License: GPLv2+
URL: https://savannah.nongnu.org/projects/acl
@ -119,6 +123,9 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}*
%{_libdir}/libacl.so.*
%changelog
* Fri Oct 06 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.1-4
- preserve failed setfacl return code (RHEL-11833)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.1-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688