GIT update of https://sourceware.org/git/glibc.git/release/2.27/master from glibc-2.27
Gbp-Pq: Name git-updates.diff
+2018-02-19 Rical Jasan <ricaljasan@pacific.net>
+
+ [BZ #6889]
+ * manual/filesys.texi (get_current_dir_name): Clarify behaviour.
+
+2018-02-16 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/platform.texi (__riscv_flush_icache): Fix @deftypefun
+ syntax.
+
+2018-02-09 Rical Jasan <ricaljasan@pacific.net>
+
+ * manual/creature.texi: Convert references to gcc.info to gcc.
+ * manual/stdio.texi: Likewise.
+ * manual/string.texi: Likewise.
+
+2018-02-18 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #22818]
+ * posix/tst-glob_lstat_compat.c [__alpha__] (glob): Access
+ the GLIBC_2.1 version.
+
+2018-02-02 Sean McKean <smckean83@gmail.com>
+
+ [BZ #22735]
+ * time/time.h (clock): Reference CLOCKS_PER_SEC in comment.
+
+2018-02-10 Dmitry V. Levin <ldv@altlinux.org>
+
+ [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 <adhemerval.zanella@linaro.org>
+
+ * sysdeps/sh/libm-test-ulps: Update.
+
+2018-02-09 DJ Delorie <dj@redhat.com>
+
+ [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 <ignatenko@redhat.com>
+
+ [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 <hongjiu.lu@intel.com>
+
+ [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 <ldv@altlinux.org>
* version.h (RELEASE): Set to "stable".
2018-01-18 Arjun Shankar <arjun@redhat.com>
[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
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
+\f
+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
+
\f
Version 2.27
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
#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
# 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
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
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
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":
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":
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
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":
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
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
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
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
Function: Real part of "ctanh":
double: 2
-float: 1
+float: 2
idouble: 2
-ifloat: 1
+ifloat: 2
Function: Imaginary part of "ctanh":
double: 2
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
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
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":
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
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
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
.global _start
.type _start,#function
_start:
-#ifdef SHARED
+#ifdef PIC
SETUP_PIC_REG(l7)
#endif
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
.global _start
.type _start,#function
_start:
-#ifdef SHARED
+#ifdef PIC
SETUP_PIC_REG(l7)
#endif
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
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
/* 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. */
{
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;
{
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. */
__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. */