diff options
Diffstat (limited to 'packages/glibc/2.21/0005-dl-open-array-bounds.patch')
-rw-r--r-- | packages/glibc/2.21/0005-dl-open-array-bounds.patch | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/packages/glibc/2.21/0005-dl-open-array-bounds.patch b/packages/glibc/2.21/0005-dl-open-array-bounds.patch deleted file mode 100644 index ae626f13..00000000 --- a/packages/glibc/2.21/0005-dl-open-array-bounds.patch +++ /dev/null @@ -1,38 +0,0 @@ -commit 328c44c3670ebf6c1bd790acddce65a12998cd6c -Author: Roland McGrath <roland@hack.frob.com> -Date: Fri Apr 17 12:11:58 2015 -0700 - - Fuller check for invalid NSID in _dl_open. - ---- - elf/dl-open.c | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - ---- a/elf/dl-open.c -+++ b/elf/dl-open.c -@@ -211,7 +211,7 @@ - struct link_map *l = _dl_find_dso_for_object ((ElfW(Addr)) caller_dlopen); - - if (l) -- call_map = l; -+ call_map = l; - - if (args->nsid == __LM_ID_CALLER) - args->nsid = call_map->l_ns; -@@ -629,8 +629,14 @@ - /* Never allow loading a DSO in a namespace which is empty. Such - direct placements is only causing problems. Also don't allow - loading into a namespace used for auditing. */ -- else if (__builtin_expect (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER, 0) -- && (GL(dl_ns)[nsid]._ns_nloaded == 0 -+ else if (__glibc_unlikely (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER) -+ && (__glibc_unlikely (nsid < 0 || nsid >= GL(dl_nns)) -+ /* This prevents the [NSID] index expressions from being -+ evaluated, so the compiler won't think that we are -+ accessing an invalid index here in the !SHARED case where -+ DL_NNS is 1 and so any NSID != 0 is invalid. */ -+ || DL_NNS == 1 -+ || GL(dl_ns)[nsid]._ns_nloaded == 0 - || GL(dl_ns)[nsid]._ns_loaded->l_auditing)) - _dl_signal_error (EINVAL, file, NULL, - N_("invalid target namespace in dlmopen()")); |