diff options
author | Alexey Neyman <stilor@att.net> | 2017-12-02 12:44:39 -0800 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-12-02 12:44:39 -0800 |
commit | 98bc4decdeab1361bdc585c86591718fb08c8ffb (patch) | |
tree | 4e048ed57988306696efa3c5b81a80d48030e913 /packages/glibc/2.19/0005-dl-open-array-bounds.patch | |
parent | 2a1935f3ad41d360dd3d96a1b0486083293651dd (diff) | |
download | crosstool-ng-98bc4decdeab1361bdc585c86591718fb08c8ffb.tar.gz crosstool-ng-98bc4decdeab1361bdc585c86591718fb08c8ffb.tar.bz2 crosstool-ng-98bc4decdeab1361bdc585c86591718fb08c8ffb.zip |
Run all patches through renumbering and update
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'packages/glibc/2.19/0005-dl-open-array-bounds.patch')
-rw-r--r-- | packages/glibc/2.19/0005-dl-open-array-bounds.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/glibc/2.19/0005-dl-open-array-bounds.patch b/packages/glibc/2.19/0005-dl-open-array-bounds.patch new file mode 100644 index 00000000..83eb0b3c --- /dev/null +++ b/packages/glibc/2.19/0005-dl-open-array-bounds.patch @@ -0,0 +1,38 @@ +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; +@@ -627,8 +627,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()")); |