Revert: "Allow libautohbw allocations of size zero"

It turns out that LD_PRELOAD'ing libautohbw to override glibc's malloc
with this set of changes brings up a jemalloc circular dependency problem
with TLS init. As jemalloc depends on having the TLS initialized and malloc
is (now) required to get that area initialized, having jemalloc overriding
malloc before that initialization causes a recursion where TLS_init calls
malloc, which goes to jemalloc which requires TLS_init [1]. This recursion
causes the stack to grow unbounded up to the point it smashes into the
first shared lib mapping that happens to be mapped below the stack gap
leading the program to coredump with a SIGSEGV.

[1] https://github.com/jemalloc/jemalloc/issues/2472

Related: RHEL-14497

Signed-off-by: Rafael Aquini <aquini@redhat.com>
This commit is contained in:
Rafael Aquini 2024-02-29 18:02:13 -05:00
parent 46ae59eceb
commit b5e4ba016e

View File

@ -3,7 +3,7 @@
Name: memkind
Summary: User Extensible Heap Manager
Version: 1.10.1
Release: 3%{?checkout}%{?dist}
Release: 4%{?checkout}%{?dist}
License: BSD-2-Clause
Group: System Environment/Libraries
URL: http://memkind.github.io/memkind
@ -29,9 +29,6 @@ Source0: %{name}-%{version}.tar.gz
# the strong stack protection setup
Patch0: configure.ac.patch
# Fix https://issues.redhat.com/browse/RHEL-14497
Patch1: 0001-Handle-allocations-of-size-zero-in-libautohbw.patch
%description
The memkind library is an user extensible heap manager built on top of
jemalloc which enables control of memory characteristics and a
@ -64,7 +61,6 @@ alpha release. Feedback on design or implementation is greatly appreciated.
%prep
%setup -q -a 0 -n %{name}-%{version}
%patch0 -p1
%patch1 -p1
%build
%set_build_flags
@ -116,6 +112,9 @@ rm -f %{buildroot}/%{_docdir}/%{name}/VERSION
%{_mandir}/man3/pmemallocator.3.*
%changelog
* Thu Feb 29 2024 Rafael Aquini <aquini@redhat.com> - 1.10.1-4
- Revert changes introduced for RHEL-14497
* Mon Nov 30 2023 Rafael Aquini <aquini@redhat.com> - 1.10.1-3
- Follow-up fix for a minor typo in the changelogs (RHEL-14497)
- Adjust the RPM license to match SPDX format (RHELMISC-1262)