glibc-2.24.90-11

- Add prototype support for detecting invalid IFUNC calls (swbz#20019).
- New POSIX thread condition variable implementation (swbz#13165).
This commit is contained in:
Carlos O'Donell 2016-10-17 22:19:05 -04:00
parent 4f53fe474e
commit 83e5c415da
3 changed files with 7045 additions and 1 deletions

6998
glibc-swbz13165.patch Normal file

File diff suppressed because it is too large Load Diff

33
glibc-swbz20019.patch Normal file
View File

@ -0,0 +1,33 @@
Bug 20019 - NULL pointer dereference in libc.so.6 IFUNC due to uninitialized GOT
Prototype patch by H.J. Lu <hjl.tools@gmail.com> to error
out when IFUNC being resolved is for another map that hasn't
yet been relocated.
--- a/sysdeps/x86_64/dl-machine.h
+++ a/sysdeps/x86_64/dl-machine.h
@@ -331,7 +331,23 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
0)
&& __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
&& __builtin_expect (!skip_ifunc, 1))
- value = ((ElfW(Addr) (*) (void)) value) ();
+ {
+# ifndef RTLD_BOOTSTRAP
+ if (sym_map != map
+ && sym_map->l_type != lt_executable
+ && !sym_map->l_relocated)
+ {
+ const char *strtab
+ = (const char *) D_PTR (map, l_info[DT_STRTAB]);
+ _dl_fatal_printf ("\
+%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n",
+ RTLD_PROGNAME, map->l_name,
+ sym_map->l_name,
+ strtab + refsym->st_name);
+ }
+#endif
+ value = ((ElfW(Addr) (*) (void)) value) ();
+ }
switch (r_type)
{

View File

@ -1,6 +1,6 @@
%define glibcsrcdir glibc-2.24-256-g5140d03
%define glibcversion 2.24.90
%define glibcrelease 10%{?dist}
%define glibcrelease 11%{?dist}
# Pre-release tarballs are pulled in from git using a command that is
# effectively:
#
@ -262,6 +262,13 @@ Patch0059: glibc-c-utf8-locale.patch
# Build libcrypt twice, with and without NSS.
Patch0060: glibc-rh1324623.patch
# Bug 20019: Prototype patch to error on resolution of IFUNC
# for an uninitialized library.
Patch0061: glibc-swbz20019.patch
# Bug 13165: New condvar implementation.
Patch0062: glibc-swbz13165.patch
##############################################################################
#
# Patches from upstream
@ -881,6 +888,8 @@ microbenchmark tests on the system.
%patch2038 -p1
%patch2110 -p1
%patch2112 -p1
%patch0061 -p1
%patch0062 -p1
##############################################################################
# %%prep - Additional prep required...
@ -2275,6 +2284,10 @@ rm -f *.filelist*
%endif
%changelog
* Mon Oct 17 2016 Carlos O'Donell <carlos@systemhalted.org> - 2.24.90-11
- Add prototype support for detecting invalid IFUNC calls (swbz#20019).
- New POSIX thread condition variable implementation (swbz#13165).
* Fri Oct 07 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-10
- Auto-sync with upstream master,
commit 5140d036f9c16585448b5908c3a219bd96842161, fixing: