diff --git a/glibc-RHEL-105957.patch b/glibc-RHEL-105957.patch new file mode 100644 index 0000000..76c7f67 --- /dev/null +++ b/glibc-RHEL-105957.patch @@ -0,0 +1,33 @@ +Downstream patch only. + +Revert changes made to elf/dl-readonly-area.c compared to +ed6a68bac7cd056abda9008019c71b167f0362dc since `_dl_find_object` has +been backported. + +Note: `_dl_find_object` isn't directly made available internally +downstream, we can use `__dl_find_object_internal` instead. + +diff --git a/elf/dl-readonly-area.c b/elf/dl-readonly-area.c +index 570b99b11527db13..3b39eed06a379ce3 100644 +--- a/elf/dl-readonly-area.c ++++ b/elf/dl-readonly-area.c +@@ -40,16 +40,11 @@ check_relro (const struct link_map *l, uintptr_t start, uintptr_t end) + enum dl_readonly_area_error_type + _dl_readonly_area (const void *ptr, size_t size) + { +- /* Protect against concurrent loads and unloads. */ +- __rtld_lock_lock_recursive (GL(dl_load_lock)); +- +- const struct link_map *l = _dl_find_dso_for_object ((ElfW(Addr)) ptr); +- +- __rtld_lock_unlock_recursive (GL(dl_load_lock)); +- +- if (l == NULL) ++ struct dl_find_object dlfo; ++ if (__dl_find_object_internal ((void *)ptr, &dlfo) != 0) + return dl_readonly_area_not_found; + ++ const struct link_map *l = dlfo.dlfo_link_map; + uintptr_t ptr_start = (uintptr_t) ptr; + uintptr_t ptr_end = ptr_start + size; + diff --git a/glibc.spec b/glibc.spec index 3e306a4..1be4f03 100644 --- a/glibc.spec +++ b/glibc.spec @@ -157,7 +157,7 @@ end \ Summary: The GNU libc libraries Name: glibc Version: %{glibcversion} -Release: 219%{?dist} +Release: 220%{?dist} # In general, GPLv2+ is used by programs, LGPLv2+ is used for # libraries. @@ -1324,6 +1324,7 @@ Patch1014: glibc-RHEL-93320-19.patch Patch1015: glibc-RHEL-103952.patch Patch1016: glibc-RHEL-105327.patch Patch1017: glibc-RHEL-74251.patch +Patch1018: glibc-RHEL-105957.patch ############################################################################## # Continued list of core "glibc" package information: @@ -3321,6 +3322,10 @@ update_gconv_modules_cache () %endif %changelog +* Mon Jul 28 2025 Frédéric Bérat - 2.34-220 +- Revert downstream changes as `_dl_find_object` has been backported + (RHEL-105957) + * Fri Jul 25 2025 Frédéric Bérat - 2.34-219 - The dynamic linker no longer crashed when processing specific symbol versions. (RHEL-74251)