From: GNU Libc Maintainers Date: Sat, 3 Mar 2018 10:47:56 +0000 (+0000) Subject: git-updates X-Git-Tag: archive/raspbian/2.27-1+rpi1^2~169 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ef8794170fb344df8a91daa7c5c3885d0fe16859;p=glibc.git git-updates GIT update of https://sourceware.org/git/glibc.git/release/2.27/master from glibc-2.27 Gbp-Pq: Name git-updates.diff --- diff --git a/ChangeLog b/ChangeLog index f3fe2716b..727b2f92c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,60 @@ +2018-02-19 Rical Jasan + + [BZ #6889] + * manual/filesys.texi (get_current_dir_name): Clarify behaviour. + +2018-02-16 Rical Jasan + + * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun + syntax. + +2018-02-09 Rical Jasan + + * manual/creature.texi: Convert references to gcc.info to gcc. + * manual/stdio.texi: Likewise. + * manual/string.texi: Likewise. + +2018-02-18 Aurelien Jarno + + [BZ #22818] + * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access + the GLIBC_2.1 version. + +2018-02-02 Sean McKean + + [BZ #22735] + * time/time.h (clock): Reference CLOCKS_PER_SEC in comment. + +2018-02-10 Dmitry V. Levin + + [BZ #22433] + * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h (__ptrace_request): + Remove arm-specific PTRACE_GET_THREAD_AREA, PTRACE_GETHBPREGS, + and PTRACE_SETHBPREGS. + +2018-02-14 Adhemerval Zanella + + * sysdeps/sh/libm-test-ulps: Update. + +2018-02-09 DJ Delorie + + [BZ #22827] + * sysdeps/unix/sysv/linux/riscv/readelflib.c (process_elf_file): Use + 64-bit ELF type for 64-bit ELF objects. + +2018-02-07 Igor Gnatenko + + [BZ #22797] + * sysdeps/unix/sysv/linux/bits/mman-shared.h (pkey_get): Add + missing second underscore to parameter name. + +2018-02-05 H.J. Lu + + [BZ #22638] + * sysdeps/sparc/sparc32/start.S (_start): Check PIC instead of + SHARED. + * sysdeps/sparc/sparc64/start.S (_start): Likewise. + 2018-02-01 Dmitry V. Levin * version.h (RELEASE): Set to "stable". @@ -710,7 +767,9 @@ 2018-01-18 Arjun Shankar [BZ #22343] + [BZ #22774] CVE-2018-6485 + CVE-2018-6551 * malloc/malloc.c (checked_request2size): call REQUEST_OUT_OF_RANGE after padding. (_int_memalign): check for integer overflow before calling diff --git a/NEWS b/NEWS index a71c1038a..5571c592b 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,19 @@ See the end for copying conditions. Please send GNU C library bug reports via using `glibc' in the "product" field. + +Version 2.27.1 + +The following bugs are resolved with this release: + + [6889] 'PWD' mentioned but not specified + [22638] sparc: static binaries are broken if glibc is built by gcc + configured with --enable-default-pie + [22735] Misleading typo in time.h source comment regarding CLOCKS_PER_SECOND + [22797] Linux: use reserved name __key in pkey_get + [22818] posix/tst-glob_lstat_compat failure on alpha + [22827] RISC-V ELF64 parser mis-reads flag in ldconfig + Version 2.27 @@ -262,6 +275,10 @@ Security related changes: an object size near the value of SIZE_MAX, would return a pointer to a buffer which is too small, instead of NULL. Reported by Jakub Wilk. + CVE-2018-6551: The malloc function, when called with an object size near + the value of SIZE_MAX, would return a pointer to a buffer which is too + small, instead of NULL. + The following bugs are resolved with this release: [866] glob: glob should match dangling symlinks diff --git a/posix/tst-glob_lstat_compat.c b/posix/tst-glob_lstat_compat.c index c46bc9e57..22cd1f02f 100644 --- a/posix/tst-glob_lstat_compat.c +++ b/posix/tst-glob_lstat_compat.c @@ -35,7 +35,14 @@ #if TEST_COMPAT (libc, GLIBC_2_0, GLIBC_2_27) __typeof (glob) glob; +/* On alpha glob exists in version GLIBC_2_0, GLIBC_2_1, and GLIBC_2_27. + This test needs to access the version prior to GLIBC_2_27, which is + GLIBC_2_1 on alpha, GLIBC_2_0 elsewhere. */ +# ifdef __alpha__ +compat_symbol_reference (libc, glob, glob, GLIBC_2_1); +# else compat_symbol_reference (libc, glob, glob, GLIBC_2_0); +# endif /* Compat glob should not call gl_lstat since for some old binaries it might be unitialized (for instance GNUmake). Check if it is indeed diff --git a/sysdeps/sh/libm-test-ulps b/sysdeps/sh/libm-test-ulps index da4224c2d..11c5f3216 100644 --- a/sysdeps/sh/libm-test-ulps +++ b/sysdeps/sh/libm-test-ulps @@ -1,13 +1,31 @@ # Begin of automatic generation # Maximal error of functions: -Function: "acos_towardzero": +Function: "acos": float: 1 ifloat: 1 -Function: "acosh": +Function: "acos_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 + +Function: "acosh": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "acosh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "asin": +float: 1 +ifloat: 1 Function: "asin_towardzero": double: 1 @@ -18,16 +36,55 @@ ifloat: 1 Function: "asinh": double: 1 float: 1 +idouble: 1 +ifloat: 1 + +Function: "asinh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "atan": +float: 1 ifloat: 1 Function: "atan2": float: 1 ifloat: 1 -Function: "atanh": +Function: "atan2_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +Function: "atan_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 +Function: "atanh": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "atanh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "cabs": +double: 1 +idouble: 1 + +Function: "cabs_towardzero": +double: 1 +idouble: 1 + Function: Real part of "cacos": double: 1 float: 2 @@ -35,18 +92,52 @@ idouble: 1 ifloat: 2 Function: Imaginary part of "cacos": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 +ifloat: 2 + +Function: Real part of "cacos_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 + +Function: Imaginary part of "cacos_towardzero": +double: 4 +float: 2 +idouble: 4 ifloat: 2 Function: Real part of "cacosh": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: Imaginary part of "cacosh": double: 1 float: 2 idouble: 1 ifloat: 2 -Function: Imaginary part of "cacosh": +Function: Real part of "cacosh_towardzero": +double: 4 +float: 2 +idouble: 4 +ifloat: 2 + +Function: Imaginary part of "cacosh_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 + +Function: "carg": +float: 1 +ifloat: 1 + +Function: "carg_towardzero": double: 1 float: 2 idouble: 1 @@ -59,15 +150,27 @@ idouble: 1 ifloat: 1 Function: Imaginary part of "casin": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 +ifloat: 2 + +Function: Real part of "casin_towardzero": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 + +Function: Imaginary part of "casin_towardzero": +double: 4 +float: 2 +idouble: 4 ifloat: 2 Function: Real part of "casinh": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 Function: Imaginary part of "casinh": @@ -76,8 +179,22 @@ float: 1 idouble: 1 ifloat: 1 +Function: Real part of "casinh_towardzero": +double: 4 +float: 2 +idouble: 4 +ifloat: 2 + +Function: Imaginary part of "casinh_towardzero": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 + Function: Real part of "catan": +double: 1 float: 1 +idouble: 1 ifloat: 1 Function: Imaginary part of "catan": @@ -86,6 +203,18 @@ float: 1 idouble: 1 ifloat: 1 +Function: Real part of "catan_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +Function: Imaginary part of "catan_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + Function: Real part of "catanh": double: 1 float: 1 @@ -93,13 +222,33 @@ idouble: 1 ifloat: 1 Function: Imaginary part of "catanh": +double: 1 float: 1 +idouble: 1 ifloat: 1 -Function: "cbrt": +Function: Real part of "catanh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: Imaginary part of "catanh_towardzero": double: 1 -float: 1 +float: 2 idouble: 1 +ifloat: 2 + +Function: "cbrt": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 + +Function: "cbrt_towardzero": +double: 3 +float: 1 +idouble: 3 ifloat: 1 Function: Real part of "ccos": @@ -114,6 +263,18 @@ float: 1 idouble: 1 ifloat: 1 +Function: Real part of "ccos_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +Function: Imaginary part of "ccos_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 + Function: Real part of "ccosh": double: 1 float: 1 @@ -126,6 +287,18 @@ float: 1 idouble: 1 ifloat: 1 +Function: Real part of "ccosh_towardzero": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 + +Function: Imaginary part of "ccosh_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 + Function: Real part of "cexp": double: 2 float: 1 @@ -138,27 +311,63 @@ float: 2 idouble: 1 ifloat: 2 -Function: Real part of "clog": +Function: Real part of "cexp_towardzero": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 + +Function: Imaginary part of "cexp_towardzero": +double: 1 +float: 3 +idouble: 1 +ifloat: 3 + +Function: Real part of "clog": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 Function: Imaginary part of "clog": float: 1 ifloat: 1 Function: Real part of "clog10": +double: 3 +float: 4 +idouble: 3 +ifloat: 4 + +Function: Imaginary part of "clog10": double: 2 float: 2 idouble: 2 ifloat: 2 -Function: Imaginary part of "clog10": +Function: Real part of "clog10_towardzero": +double: 5 +float: 5 +idouble: 5 +ifloat: 5 + +Function: Imaginary part of "clog10_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 + +Function: Real part of "clog_towardzero": +double: 4 +float: 4 +idouble: 4 +ifloat: 4 + +Function: Imaginary part of "clog_towardzero": double: 1 -float: 1 +float: 3 idouble: 1 -ifloat: 1 +ifloat: 3 Function: "cos": float: 1 @@ -184,42 +393,90 @@ ifloat: 1 Function: Real part of "cpow": double: 2 -float: 4 +float: 5 idouble: 2 -ifloat: 4 +ifloat: 5 Function: Imaginary part of "cpow": float: 2 ifloat: 2 +Function: Real part of "cpow_towardzero": +double: 4 +float: 8 +idouble: 4 +ifloat: 8 + +Function: Imaginary part of "cpow_towardzero": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + Function: Real part of "csin": double: 1 float: 1 idouble: 1 ifloat: 1 -Function: Real part of "csinh": -float: 1 -ifloat: 1 +Function: Real part of "csin_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 -Function: Imaginary part of "csinh": +Function: Imaginary part of "csin_towardzero": double: 1 float: 1 idouble: 1 ifloat: 1 -Function: Real part of "csqrt": -double: 1 +Function: Real part of "csinh": float: 1 -idouble: 1 ifloat: 1 -Function: Imaginary part of "csqrt": +Function: Imaginary part of "csinh": double: 1 float: 1 idouble: 1 ifloat: 1 +Function: Real part of "csinh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: Imaginary part of "csinh_towardzero": +double: 2 +float: 3 +idouble: 2 +ifloat: 3 + +Function: Real part of "csqrt": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: Imaginary part of "csqrt": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: Real part of "csqrt_towardzero": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 + +Function: Imaginary part of "csqrt_towardzero": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 + Function: Real part of "ctan": double: 1 float: 1 @@ -246,9 +503,9 @@ ifloat: 3 Function: Real part of "ctanh": double: 2 -float: 1 +float: 2 idouble: 2 -ifloat: 1 +ifloat: 2 Function: Imaginary part of "ctanh": double: 2 @@ -270,25 +527,51 @@ ifloat: 3 Function: "erf": double: 1 +float: 1 idouble: 1 +ifloat: 1 -Function: "erfc": +Function: "erf_towardzero": double: 1 float: 1 idouble: 1 ifloat: 1 +Function: "erfc": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 + +Function: "erfc_towardzero": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 + Function: "exp10": +double: 2 +idouble: 2 + +Function: "exp10_towardzero": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +Function: "exp2": double: 1 idouble: 1 -Function: "exp10_towardzero": +Function: "exp2_towardzero": double: 1 idouble: 1 Function: "exp_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 Function: "expm1": double: 1 @@ -298,21 +581,31 @@ ifloat: 1 Function: "expm1_towardzero": double: 1 -float: 1 +float: 2 idouble: 1 -ifloat: 1 +ifloat: 2 Function: "fma_towardzero": double: 1 idouble: 1 Function: "gamma": +double: 4 +float: 3 +idouble: 4 +ifloat: 3 + +Function: "gamma_towardzero": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 + +Function: "hypot": double: 1 -float: 1 idouble: 1 -ifloat: 1 -Function: "hypot": +Function: "hypot_towardzero": double: 1 idouble: 1 @@ -322,44 +615,94 @@ float: 2 idouble: 2 ifloat: 2 +Function: "j0_towardzero": +double: 3 +float: 1 +idouble: 3 +ifloat: 1 + Function: "j1": double: 1 float: 2 idouble: 1 ifloat: 2 +Function: "j1_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 + Function: "jn": double: 4 float: 4 idouble: 4 ifloat: 4 +Function: "jn_towardzero": +double: 5 +float: 5 +idouble: 5 +ifloat: 5 + Function: "lgamma": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 +double: 4 +float: 3 +idouble: 4 +ifloat: 3 + +Function: "lgamma_towardzero": +double: 5 +float: 3 +idouble: 5 +ifloat: 3 Function: "log": float: 1 ifloat: 1 Function: "log10": -double: 1 +double: 2 float: 2 -idouble: 1 +idouble: 2 ifloat: 2 +Function: "log10_towardzero": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + Function: "log1p": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "log1p_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "log2": +double: 2 float: 1 +idouble: 2 ifloat: 1 +Function: "log2_towardzero": +double: 2 +idouble: 2 + Function: "pow": float: 1 ifloat: 1 Function: "pow_towardzero": +double: 1 float: 1 +idouble: 1 ifloat: 1 Function: "sin": @@ -376,9 +719,27 @@ Function: "sincos": float: 1 ifloat: 1 -Function: "sinh_towardzero": +Function: "sincos_towardzero": double: 1 +float: 1 idouble: 1 +ifloat: 1 + +Function: "sinh": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "sinh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "tan": +float: 1 +ifloat: 1 Function: "tan_towardzero": double: 1 @@ -386,11 +747,29 @@ float: 1 idouble: 1 ifloat: 1 +Function: "tanh": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + +Function: "tanh_towardzero": +double: 2 +float: 2 +idouble: 2 +ifloat: 2 + Function: "tgamma": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 +double: 5 +float: 4 +idouble: 5 +ifloat: 4 + +Function: "tgamma_towardzero": +double: 5 +float: 4 +idouble: 5 +ifloat: 4 Function: "y0": double: 2 @@ -398,16 +777,34 @@ float: 1 idouble: 2 ifloat: 1 +Function: "y0_towardzero": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 + Function: "y1": double: 3 float: 2 idouble: 3 ifloat: 2 +Function: "y1_towardzero": +double: 3 +float: 2 +idouble: 3 +ifloat: 2 + Function: "yn": double: 3 float: 2 idouble: 3 ifloat: 2 +Function: "yn_towardzero": +double: 3 +float: 3 +idouble: 3 +ifloat: 3 + # end of automatic generation diff --git a/sysdeps/sparc/sparc32/start.S b/sysdeps/sparc/sparc32/start.S index 1db7327fc..46ba8b6af 100644 --- a/sysdeps/sparc/sparc32/start.S +++ b/sysdeps/sparc/sparc32/start.S @@ -42,7 +42,7 @@ .global _start .type _start,#function _start: -#ifdef SHARED +#ifdef PIC SETUP_PIC_REG(l7) #endif @@ -57,7 +57,7 @@ _start: add %sp, 23*4, %o2 /* Load the addresses of the user entry points. */ -#ifndef SHARED +#ifndef PIC sethi %hi(main), %o0 sethi %hi(__libc_csu_init), %o3 sethi %hi(__libc_csu_fini), %o4 diff --git a/sysdeps/sparc/sparc64/start.S b/sysdeps/sparc/sparc64/start.S index e1865f10c..75ff5093d 100644 --- a/sysdeps/sparc/sparc64/start.S +++ b/sysdeps/sparc/sparc64/start.S @@ -42,7 +42,7 @@ .global _start .type _start,#function _start: -#ifdef SHARED +#ifdef PIC SETUP_PIC_REG(l7) #endif @@ -58,7 +58,7 @@ _start: add %sp, STACK_BIAS+23*8, %o2 /* Load the addresses of the user entry points. */ -#ifndef SHARED +#ifndef PIC sethi %hi(main), %o0 sethi %hi(__libc_csu_init), %o3 sethi %hi(__libc_csu_fini), %o4 diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h index 4be45b95f..444edbb70 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h @@ -78,18 +78,10 @@ enum __ptrace_request PTRACE_DETACH = 17, #define PT_DETACH PTRACE_DETACH - PTRACE_GET_THREAD_AREA = 22, - /* Continue and stop at the next entry to or return from syscall. */ PTRACE_SYSCALL = 24, #define PT_SYSCALL PTRACE_SYSCALL - /* Get all hardware breakpoint registers. */ - PTRACE_GETHBPREGS = 29, - - /* Set all hardware breakpoint registers. */ - PTRACE_SETHBPREGS = 30, - /* Set ptrace filter options. */ PTRACE_SETOPTIONS = 0x4200, #define PT_SETOPTIONS PTRACE_SETOPTIONS diff --git a/sysdeps/unix/sysv/linux/bits/mman-shared.h b/sysdeps/unix/sysv/linux/bits/mman-shared.h index 7715e680c..d15ba95c9 100644 --- a/sysdeps/unix/sysv/linux/bits/mman-shared.h +++ b/sysdeps/unix/sysv/linux/bits/mman-shared.h @@ -61,7 +61,7 @@ int pkey_set (int __key, unsigned int __access_rights) __THROW; /* Return the access rights for the current thread for KEY, which must have been allocated using pkey_alloc. */ -int pkey_get (int _key) __THROW; +int pkey_get (int __key) __THROW; /* Free an allocated protection key, which must have been allocated using pkey_alloc. */ diff --git a/sysdeps/unix/sysv/linux/riscv/readelflib.c b/sysdeps/unix/sysv/linux/riscv/readelflib.c index 6e249ff82..7e27e0c1d 100644 --- a/sysdeps/unix/sysv/linux/riscv/readelflib.c +++ b/sysdeps/unix/sysv/linux/riscv/readelflib.c @@ -43,6 +43,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, { ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; Elf32_Ehdr *elf32_header = (Elf32_Ehdr *) elf_header; + Elf64_Ehdr *elf64_header = (Elf64_Ehdr *) elf_header; int ret; long flags; @@ -59,7 +60,7 @@ process_elf_file (const char *file_name, const char *lib, int *flag, { ret = process_elf64_file (file_name, lib, flag, osversion, soname, file_contents, file_length); - flags = elf32_header->e_flags; + flags = elf64_header->e_flags; } /* RISC-V linkers encode the floating point ABI as part of the ELF headers. */ diff --git a/time/time.h b/time/time.h index 49d30438f..4b55e3440 100644 --- a/time/time.h +++ b/time/time.h @@ -68,7 +68,7 @@ typedef __pid_t pid_t; __BEGIN_DECLS /* Time used by the program so far (user time + system time). - The result / CLOCKS_PER_SECOND is program time in seconds. */ + The result / CLOCKS_PER_SEC is program time in seconds. */ extern clock_t clock (void) __THROW; /* Return the current time and put it in *TIMER if TIMER is not NULL. */