Merge pull request !306 from liqingqing_1229/2203
This commit is contained in:
commit
81b8721638
50
elf-Replace-nsid-with-args.nsid-BZ-27609.patch
Normal file
50
elf-Replace-nsid-with-args.nsid-BZ-27609.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From 1e1ecea62e899acb58c3fdf3b320a0833ddd0dff Mon Sep 17 00:00:00 2001
|
||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||
Date: Thu, 30 Sep 2021 10:29:17 -0700
|
||||
Subject: [PATCH] elf: Replace nsid with args.nsid [BZ #27609]
|
||||
|
||||
commit ec935dea6332cb22f9881cd1162bad156173f4b0
|
||||
Author: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Fri Apr 24 22:31:15 2020 +0200
|
||||
|
||||
elf: Implement __libc_early_init
|
||||
|
||||
has
|
||||
|
||||
@@ -856,6 +876,11 @@ no more namespaces available for dlmopen()"));
|
||||
/* See if an error occurred during loading. */
|
||||
if (__glibc_unlikely (exception.errstring != NULL))
|
||||
{
|
||||
+ /* Avoid keeping around a dangling reference to the libc.so link
|
||||
+ map in case it has been cached in libc_map. */
|
||||
+ if (!args.libc_already_loaded)
|
||||
+ GL(dl_ns)[nsid].libc_map = NULL;
|
||||
+
|
||||
|
||||
do_dlopen calls _dl_open with nsid == __LM_ID_CALLER (-2), which calls
|
||||
dl_open_worker with args.nsid = nsid. dl_open_worker updates args.nsid
|
||||
if it is __LM_ID_CALLER. After dl_open_worker returns, it is wrong to
|
||||
use nsid.
|
||||
|
||||
Replace nsid with args.nsid after dl_open_worker returns. This fixes
|
||||
BZ #27609.
|
||||
---
|
||||
elf/dl-open.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/elf/dl-open.c b/elf/dl-open.c
|
||||
index a25443f..5295e93 100644
|
||||
--- a/elf/dl-open.c
|
||||
+++ b/elf/dl-open.c
|
||||
@@ -886,7 +886,7 @@ no more namespaces available for dlmopen()"));
|
||||
/* Avoid keeping around a dangling reference to the libc.so link
|
||||
map in case it has been cached in libc_map. */
|
||||
if (!args.libc_already_loaded)
|
||||
- GL(dl_ns)[nsid].libc_map = NULL;
|
||||
+ GL(dl_ns)[args.nsid].libc_map = NULL;
|
||||
|
||||
/* Remove the object from memory. It may be in an inconsistent
|
||||
state if relocation failed, for example. */
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
##############################################################################
|
||||
Name: glibc
|
||||
Version: 2.34
|
||||
Release: 37
|
||||
Release: 38
|
||||
Summary: The GNU libc libraries
|
||||
License: %{all_license}
|
||||
URL: http://www.gnu.org/software/glibc/
|
||||
@ -145,6 +145,7 @@ Patch58: nptl-Add-one-more-barrier-to-nptl-tst-create1.patch
|
||||
Patch59: io-Fix-ftw-internal-realloc-buffer-BZ-28126.patch
|
||||
Patch60: Do-not-define-tgmath.h-fmaxmag-fminmag-macros-for-C2.patch
|
||||
Patch61: ld.so-Don-t-fill-the-DT_DEBUG-entry-in-ld.so-BZ-2812.patch
|
||||
Patch62: elf-Replace-nsid-with-args.nsid-BZ-27609.patch
|
||||
|
||||
Patch9000: turn-default-value-of-x86_rep_stosb_threshold_form_2K_to_1M.patch
|
||||
Patch9001: delete-no-hard-link-to-avoid-all_language-package-to.patch
|
||||
@ -1341,6 +1342,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Dec 27 2021 Qingqing Li <liqingqing3@huawei.com> - 2.34-38
|
||||
- elf: replace nsid with args.nsid [BZ #27609]
|
||||
|
||||
* Sat Dec 25 2021 liusirui <liusirui@huawei.com> - 2.34-37
|
||||
- ld.so: Don't fill the DT_DEBUG entry in ld.so [BZ #28129]
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user