diff --git a/SOURCES/0001-acl-2.3.1-setfacl-preserve-failed-status.patch b/SOURCES/0001-acl-2.3.1-setfacl-preserve-failed-status.patch new file mode 100644 index 0000000..01fa307 --- /dev/null +++ b/SOURCES/0001-acl-2.3.1-setfacl-preserve-failed-status.patch @@ -0,0 +1,60 @@ +From 7ce89c695e76ec41fcebd83f8b728f63b0361a2d Mon Sep 17 00:00:00 2001 +From: Renaud Metrich +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 + diff --git a/SPECS/acl.spec b/SPECS/acl.spec index 7dc9dda..9af86c3 100644 --- a/SPECS/acl.spec +++ b/SPECS/acl.spec @@ -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 - 2.3.1-4 +- preserve failed setfacl return code (RHEL-11833) + * Mon Aug 09 2021 Mohan Boddu - 2.3.1-3 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688