Compare commits

...

No commits in common. 'c9' and 'cs10' have entirely different histories.
c9 ... cs10

@ -1 +1,2 @@
a5343e9f75326ffe5aa8d5d042e52227a3fd66cb SOURCES/acl-2.3.1.tar.gz
5de165db26d8f03cebf26fd70cff294e0af925df SOURCES/acl-2.3.2.tar.gz
435fd1e3945356e9f5d75bcf97981bb82990da70 SOURCES/acl-2.3.2.tar.gz.sig

3
.gitignore vendored

@ -1 +1,2 @@
SOURCES/acl-2.3.1.tar.gz
SOURCES/acl-2.3.2.tar.gz
SOURCES/acl-2.3.2.tar.gz.sig

@ -0,0 +1,46 @@
From 56abe432b65801f31277fb9a3bca0f9e31502315 Mon Sep 17 00:00:00 2001
From: Matthias Gerstner <matthias.gerstner@suse.de>
Date: Thu, 25 Apr 2024 12:43:49 +0200
Subject: [PATCH] libmisc: __acl_get_uid(): fix memory wasting loop if user
does not exist
I noticed that `acl_from_text()` unexpectedly returns ENOMEM for invalid
user names. The reason for this is a missing break statement in the for
loop in `__acl_get_uid()`, which causes the loop to act as if ERANGE was
returned from `getpwnam_r()`, thereby exponentially increasing the
buffer size to (in my case) multiple gigabytes, until `grow_buffer()`
reports ENOMEM, which terminates the `__acl_get_uid()` function.
This is a pretty costly "no such user" lookup that can disturb a
process's heap memory management, but can also cause a process to fail
e.g. if it is multithreaded and other threads encounter an ENOMEM,
before `__acl_get_uid()` frees the gigantic heap buffer and returns.
The allocated memory isn't actually used. Therefore on Linux it should
not affect other processes by default, due to its overcommit memory
and lazy memory allocation strategy.
Fix this by properly terminating the for loop on any conditions except
an ERANGE error being reported. The same break statement correctly
exists in `__acl_get_gid()` already.
Fixes: 3737f00 ("use thread-safe getpwnam_r and getgrnam_r")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
---
libmisc/uid_gid_lookup.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libmisc/uid_gid_lookup.c b/libmisc/uid_gid_lookup.c
index a4f21f6..74baab4 100644
--- a/libmisc/uid_gid_lookup.c
+++ b/libmisc/uid_gid_lookup.c
@@ -91,6 +91,7 @@ __acl_get_uid(const char *token, uid_t *uid_p)
if (err == ERANGE)
continue;
errno = err ? err : EINVAL;
+ break;
}
free(buffer);
return result ? 0 : -1;
--
2.45.2

@ -0,0 +1,62 @@
From 99ed23222f315d1a6efbc240db3ff4ed04db99c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Zaoral?= <lzaoral@redhat.com>
Date: Mon, 10 Jun 2024 16:28:22 +0200
Subject: [PATCH] tests: fix getpwnam and getgrnam
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The calls to these functions would always fail because the size of the buffer
was smaller than the minimum (170000) specified in the test implementations
of getgrnam_r and getpwnam_r. Use test_get*_match directly because getpwnam
and getgrnam should never fail on ERANGE.
This commit fixes the following failure in the test/root/restore.test test:
[21] $ chown bin passwd -- failed
chown: invalid user: bin != ~
Fixes: 3737f000d3f17cd283f51eeacac21a71a3472053 ("use thread-safe getpwnam_r and getgrnam_r")
---
test/test_group.c | 2 +-
test/test_passwd.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/test_group.c b/test/test_group.c
index 96dd612..42d6b07 100644
--- a/test/test_group.c
+++ b/test/test_group.c
@@ -136,7 +136,7 @@ struct group *getgrnam(const char *name)
static struct group grp;
struct group *result;
- (void) getgrnam_r(name, &grp, buf, sizeof(buf), &result);
+ (void) test_getgr_match(&grp, buf, sizeof buf, &result, match_name, name);
return result;
}
diff --git a/test/test_passwd.c b/test/test_passwd.c
index b88ea45..ebe9dce 100644
--- a/test/test_passwd.c
+++ b/test/test_passwd.c
@@ -117,7 +117,7 @@ int getpwnam_r(const char *name, struct passwd *pwd, char *buf, size_t buflen,
*result = NULL;
return ERANGE;
}
- last_buflen =- 1;
+ last_buflen = -1;
return test_getpw_match(pwd, buf, buflen, result, match_name, name);
}
@@ -129,7 +129,7 @@ struct passwd *getpwnam(const char *name)
static struct passwd pwd;
struct passwd *result;
- (void) getpwnam_r(name, &pwd, buf, sizeof(buf), &result);
+ (void) test_getpw_match(&pwd, buf, sizeof(buf), &result, match_name, name);
return result;
}
--
2.45.2

@ -0,0 +1,724 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
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
XkRSpu2IWY1HGR7q3i8hJf2o4Offzthpuc2ezw==
=BP++
-----END PGP PUBLIC KEY BLOCK-----

@ -1,7 +1,7 @@
Summary: Access control list utilities
Name: acl
Version: 2.3.1
Release: 3%{?dist}
Version: 2.3.2
Release: 4%{?dist}
BuildRequires: gawk
BuildRequires: gcc
BuildRequires: gettext
@ -9,13 +9,25 @@ BuildRequires: libattr-devel
BuildRequires: libtool
BuildRequires: make
BuildRequires: perl(FileHandle)
BuildRequires: gnupg2
Requires: libacl%{?_isa} = %{version}-%{release}
Source: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar.gz
Source0: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar.gz
Source1: https://download-mirror.savannah.gnu.org/releases/acl/acl-%{version}.tar.gz.sig
# Retreived from https://savannah.nongnu.org/people/viewgpg.php?user_id=15000
# Source2: agruen-key.gpg
# Retrieved from https://savannah.nongnu.org/people/viewgpg.php?user_id=42032
Source2: vapier-key.gpg
# avoid permission denied problem with LD_PRELOAD in the test-suite
Patch1: 0001-acl-2.2.53-test-runwrapper.patch
License: GPLv2+
# fix regressions introduced by the `libacl: use getpwnam_r and getgrnam_r in acl_from_text.c` patch
# https://git.savannah.nongnu.org/cgit/acl.git/commit/?id=56abe432b65801f31277fb9a3bca0f9e31502315
Patch2: 0001-acl-2.3.2-__acl_get_uid-fix-memory-wasting-loop.patch
# https://lists.nongnu.org/archive/html/acl-devel/2024-06/msg00000.html
Patch3: 0001-acl-2.3.2-tests-fix-getpwnam-and-getgrnam.patch
License: GPL-2.0-or-later AND LGPL-2.1-or-later
URL: https://savannah.nongnu.org/projects/acl
%description
@ -24,7 +36,7 @@ manipulating access control lists.
%package -n libacl
Summary: Dynamic library for access control list support
License: LGPLv2+
License: LGPL-2.1-or-later
Conflicts: filesystem < 3
%description -n libacl
@ -34,7 +46,7 @@ control lists.
%package -n libacl-devel
Summary: Files needed for building programs with libacl
License: LGPLv2+
License: LGPL-2.1-or-later
Requires: libacl%{?_isa} = %{version}-%{release}, libattr-devel
%description -n libacl-devel
@ -43,6 +55,7 @@ programs which make use of the access control list programming interface
defined in POSIX 1003.1e draft standard 17.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1
%build
@ -119,12 +132,56 @@ rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}*
%{_libdir}/libacl.so.*
%changelog
* 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
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2.3.2-4
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Fri Jul 19 2024 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.2-3
- fix regressions caused by the get{gr,pw}nam_r patch (RHEL-40603)
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.3.2-2
- Bump release for June 2024 mass rebuild
* Wed Jan 24 2024 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.2-1
- rebase to latest version (rhbz#2260000)
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Dec 01 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.1-11
- make acl compatible with -D_FORTIFY_SOURCE=3 (rhbz#2249839)
* Fri Oct 06 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.1-10
- preserve failed setfacl return code (RHEL-3909)
- make the license tag more precise
* Mon Sep 11 2023 Temuri Doghonadze <temuri.doghonadze@gmail.com> - 2.3.1-9
- Backport Georgian locale from git
- Note, it will not be needed after release of new version of acl
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Mar 14 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.1-7
- migrated to SPDX license
* Thu Jan 26 2023 Lukáš Zaoral <lzaoral@redhat.com> - 2.3.1-6
- acl is not yet compatible with -D_FORTIFY_SOURCE=3
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.1-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Mar 16 2021 Kamil Dudka <kdudka@redhat.com> - 2.3.1-1
- new upstream release

Loading…
Cancel
Save