From: Tulio Magno Quites Machado Filho Date: Tue, 7 Apr 2015 13:13:59 +0000 (-0300) Subject: Merge branch release/2.18/master into ibm/2.18/master X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fec49d52bbe7af00c80f014a76357f56293e42bd;p=thirdparty%2Fglibc.git Merge branch release/2.18/master into ibm/2.18/master Conflicts: NEWS --- fec49d52bbe7af00c80f014a76357f56293e42bd diff --cc ChangeLog index 6df40a47636,9c95cc05b9d..f302131dc43 --- a/ChangeLog +++ b/ChangeLog @@@ -1,1141 -1,60 +1,1198 @@@ +2014-06-03 Andreas Schwab + + [BZ #15946] + * resolv/res_send.c (send_dg): Reload file descriptor after + calling reopen. + +2015-03-10 Adhemerval Zanella + + * sysdeps/ieee754/dbl-64/Makefile (CFLAGS-e_pow.c): Add + $(config-cflags-nofma). + +2015-02-05 Paul Pluzhnikov + + [BZ #16618] + * stdio-common/tst-sscanf.c (main): Test for buffer overflow. + * stdio-common/vfscanf.c (_IO_vfscanf_internal): Compute needed + size in bytes. Store needed elements in wpmax. Use needed size + in bytes for extend_alloca. + +2014-05-26 Adhemerval Zanella + + * sysdeps/powerpc/powerpc32/power4/memset.S (memset): Replace insrdi + by insrwi. + * sysdeps/powerpc/powerpc32/power6/memset.S (memset): Likewise. + * sysdeps/powerpc/powerpc32/power7/memset.S (memset): Likewise. + * sysdeps/powerpc/powerpc32/power7/memchr.S (memchr): Likewise. + * sysdeps/powerpc/powerpc32/power7/memrchr.S (memrchr): Likewise. + * sysdeps/powerpc/powerpc32/power7/rawmemchr.S (rawmemchr): Likewise. + * sysdeps/powerpc/powerpc32/power7/strchr.S (strchr): Likewise. + * sysdeps/powerpc/powerpc32/power7/strchrnul.S (strchrnul): Likewise. + +2014-11-19 Carlos O'Donell + Florian Weimer + Joseph Myers + Adam Conrad + Andreas Schwab + Brooks + + [BZ #17625] + * wordexp-test.c (__dso_handle): Add prototype. + (__register_atfork): Likewise. + (__app_register_atfork): New function. + (registered_forks): New global. + (register_fork): New function. + (test_case): Add 3 new tests for WRDE_CMDSUB. + (main): Call __app_register_atfork. + (testit): If WRDE_NOCMD set registered_forks to zero, run test, and if + fork count is non-zero fail the test. + * posix/wordexp.c (exec_comm): Return WRDE_CMDSUB if WRDE_NOCMD flag + is set. + (parse_dollars): Remove check for WRDE_NOCMD. + (parse_dquote): Likewise. + +2014-12-16 Florian Weimer + + [BZ #17630] + * resolv/nss_dns/dns-network.c (getanswer_r): Iterate over alias + names. + +2014-12-15 Jeff Law + + [BZ #16617] + * stdio-common/vfprintf.c (vfprintf): Allocate large specs array + on the heap. (CVE-2012-3406) + * stdio-common/bug23-2.c, stdio-common/bug23-3.c: New file. + * stdio-common/bug23-4.c: New file. Test case by Joseph Myers. + * stdio-common/Makefile (tests): Add bug23-2, bug23-3, bug23-4. + +2014-06-21 Allan McRae + + * NEWS: Mention CVE-2014-4043. + +2014-06-11 Florian Weimer + + [BZ #17048] + * posix/spawn_int.h (struct __spawn_action): Make the path string + non-const to support deallocation. + * posix/spawn_faction_addopen.c + (posix_spawn_file_actions_addopen): Make a copy of the pathname. + * posix/spawn_faction_destroy.c + (posix_spawn_file_actions_destroy): Adjust comment. Deallocate + path in all spawn_do_open actions. + * posix/tst-spawn.c (do_test): Exercise the copy operation in + posix_spawn_file_actions_addopen. + +2014-08-26 Florian Weimer + + [BZ #17187] + * iconv/gconv_trans.c (struct known_trans, search_tree, lock, + trans_compare, open_translit, __gconv_translit_find): + Remove module loading code. + +2014-09-03 Florian Weimer + + [BZ #17325] + * iconvdata/ibm1364.c (BODY): Fix check for sentinel. + * iconvdata/ibm932.c (BODY): Replace invalid sentinel check with + assert. + * iconvdata/ibm933.c (BODY): Fix check for sentinel. + * iconvdata/ibm935.c (BODY): Likewise. + * iconvdata/ibm937.c (BODY): Likewise. + * iconvdata/ibm939.c (BODY): Likewise. + * iconvdata/ibm943.c (BODY): Replace invalid sentinel check with + assert. + * iconvdata/Makefile (iconv-test.out): Pass module list to test + script. + * iconvdata/run-iconv-test.sh: New test loop for checking for + decoder crashers. + +2014-02-18 Brooks Moses + + [BZ #15915] + * Makefile (linkobj/libc_pic.a, linkobj/libc.so): Move rules to... + * Makerules: ...here, and adjust associated comments. + +2014-02-06 Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/power5/Implies: Remove inexistent + paths. + +2014-02-06 Adhemerval Zanella + + * elf/get-dynamic-info.h (elf_get_dynamic_info): Fix remove of + assert. + +2014-02-04 Adhemerval Zanella + + * Versions.def (libm): Add GLIBC_2.3. + +2014-02-04 Adhemerval Zanella + + * nptl/shlib-versions: Change powerpc*le start to 2.17. + * shlib-versions: Likewise. + +2014-02-04 Roland McGrath + Adhemerval Zanella + + * sysdeps/powerpc/Makefile [$(config-machine) ends with 'le'] + (abilist-pattern): New variable, set to %-le.abilist. + + * Makerules (abilist-pattern): New variable. + (vpath): Use $(abilist-pattern) in place of %.abilist. + (check-abi-% pattern rule): Likewise. + (check-abi, update-abi): Likewise. + +2014-01-23 Adhemerval Zanella + + [BZ#16431] + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c (__gettimeofday): + Adjust the vDSO correctly for internal calls. + * sysdeps/unix/sysv/linux/powerpc/time.c (time): Likewise. + +2014-01-23 Adhemerval Zanella + + [BZ #16414] + * sysdeps/powerpc/powerpc64/fpu/s_truncl.S: Remove wrong + implementation. + * sysdeps/ieee754/ldbl-128ibm/s_truncl.c: Remove bogus comment. + +2014-01-23 Adhemerval Zanella + + [BZ #14143] + * sysdeps/powerpc/bits/fenv.h (__fe_nomask_env): Remove declaration. + (__fe_mask_env): Likewise. + * sysdeps/powerpc/fpu/fenv_libc.h (__fe_nomask_env): Remove + libm_hidden_proto and add function prototype. + (__fe_mask_env): Add function prototype. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c + (__fe_nomask_env): Add compat symbol for GLIBC_2.1. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c + (__fe_mask_env): Remove compiler warnings regarding ununsed variables. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c + (__fe_nomask_env): Add compat symbol for GLIBC_2.3. + +2014-01-16 Adhemerval Zanella + + [BZ#16430] + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c + (__GI___gettimeofday): Alias for a different internal symbol to avoid + local calls issues by not having a PLT stub required for IFUNC calls. + * sysdeps/unix/sysv/linux/powerpc/time.c (__GI_time): Likewise. + +2013-11-16 Alan Modra + + * NEWS: Mention powerpc64le support and bugs fixed. + * README: Both big-endian and little-endian powerpc64 supported. + +2013-11-16 Alan Modra + + * libc-abis: PowerPC64le has ifunc too. + +2013-11-16 Alan Modra + + * sysdeps/unix/sysv/linux/powerpc/configure.in (arch_minimum_kernel): + Set for powerpc*le. + * sysdeps/unix/sysv/linux/powerpc/configure: Regenerate. + +2013-11-16 Alan Modra + + [BZ #5268] + * include/gmp.h (__mpn_extract_double, __mpn_extract_long_double): + Update prototypes. + * stdio-common/printf_fp.c: Likewise. + (__printf_fp): Use returned zero_bits. + * stdlib/dbl2mpn.c (__mpn_extract_double): Update funtion arguments. + * sysdeps/i386/ldbl2mpn.c (__mpn_extract_long_double): Don't perform + shifts for denormals here. Instead return leading zero bit count + and adjust return value of function. + * sysdeps/ieee754/dbl-64/dbl2mpn.c (__mpn_extract_long_double): Likewise. + * sysdeps/ieee754/ldbl-128/ldbl2mpn.c (__mpn_extract_long_double): + Likewise. + * sysdeps/ieee754/ldbl-96/ldbl2mpn.c (__mpn_extract_long_double): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c (__mpn_extract_long_double): + Likewise. Return an extra 11 bits of precision. + +2013-11-16 Alan Modra + + * Makerules (abilist): Define and use var in abilist rules. + * sysdeps/unix/sysv/linux/powerpc/Makefile (abilist): Define. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/ld-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libBrokenLocale-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libanl-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libcrypt-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libdl-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libm-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libnsl-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libpthread-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libresolv-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/librt-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libthread_db-le.abilist, + * sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libutil-le.abilist: + New files. + +2013-11-15 Adhemerval Zanella + + * sysdeps/powerpc/fpu/libm-test-ulps: Update. + +2013-11-12 Ulrich Weigand + + * sysdeps/unix/sysv/linux/powerpc/Makefile (abi-variants): Rename + "64" to "64-v1". Add "64-v2". + (abi-64-options): Rename to ... + (abi-64-v1-options): ... this. Redefine _CALL_ELF. + (abi-64-condition): Rename to ... + (abi-64-v1-condition): ... this. Add _CALL_ELF check., + (abi-64-ld-soname): Rename to ... + (abi-64-v1-ld-soname): ... this. + (abi-64-v2-options): Define. + (abi-64-v2-condition): Likewise. + (abi-64-v2-ld-soname): Likewise. + * sysdeps/unix/sysv/linux/powerpc/ldconfig.h + (SYSDEP_KNOWN_INTERPRETER_NAMES): Add "/lib64/ld64.so.2". + * sysdeps/unix/sysv/linux/powerpc/powerpc64/Makefile: Delete file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure.ac: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/configure: Generate. + +2013-11-12 Ulrich Weigand + Alan Modra + + * sysdeps/powerpc/bits/link.h (La_ppc64v2_regs, La_ppc64v2_retval): + New versions for use with the ELFv2 ABI. + (la_ppc64v2_gnu_pltenter, la_ppc64v2_gnu_pltexit): Add prototypes. + * sysdeps/powerpc/lsdodefs.h (struct La_ppc64v2_regs): Add forward + declaration. + (struct La_ppc64v2_retval): Likewise. + (ARCH_PLTENTER_MEMBERS): Add ppc64v2_gnu_pltenter. + (ARCH_PLTEXIT_MEMBERS): Add ppc64v2_gnu_pltexit. + * sysdeps/powerpc/powerpc64/dl-machine.h (ARCH_LA_PLTENTER): Define + to ppc64v2_gnu_pltenter if _CALL_ELF == 2. + (ARCH_LA_PLTEXIT): Define to ppc64v2_gnu_pltexit if _CALL_ELF == 2. + * sysdeps/powerpc/powerpc64/dl-trampoline.S (_dl_runtime_resolve): + Do not save or restore CR. + (FRAME_SIZE, VR_RTN): Provide updated values for _CALL_ELF == 2. + (_dl_profile_resolve): Do no save or restore CR. Support extended + return values for ELFv2 ABI. Fix location of FPR return registers. + * sysdeps/powerpc/powerpc64/tst-audit.h (pltenter, pltexit): Provide + updated values for _CALL_ELF == 2. + (La_regs, La_retval, int_retval): Likewise. + +2013-11-12 Ulrich Weigand + + * sysdeps/powerpc/powerpc64/sysdep.h (FRAME_MIN_SIZE): Define. + (FRAME_MIN_SIZE_PARM): Likewise. + (FRAME_BACKCHAIN): Likewise. + (FRAME_CR_SAVE): Likewise. + (FRAME_LR_SAVE): Likewise. + (FRAME_TOC_SAVE): Likewise. + (FRAME_PARM_SAVE): Likewise. + (FRAME_PARM1_SAVE, FRAME_PARM2_SAVE, FRAME_PARM3_SAVE, + FRAME_PARM4_SAVE, FRAME_PARM5_SAVE, FRAME_PARM6_SAVE, + FRAME_PARM7_SAVE, FRAME_PARM8_SAVE, FRAME_PARM9_SAVE): Likewise. + (call_mcount_parm_offset): New macro. + (SAVE_ARG, REST_ARG, CFI_SAVE_ARG): Use it. + (PROF): Use symbolic stack frame offsets. + (TAIL_CALL_SYSCALL_ERROR): Likewise. + * sysdeps/powerpc/powerpc64/dl-trampoline.S (FRAME_SIZE, INT_PARMS): + Redefine in terms of FRAME_MIN_SIZE. + (_dl_runtime_resolve): Use symbolic stack frame offsets. + (_dl_profile_resolve): Likewise. Update comment. + * sysdeps/powerpc/powerpc64/setjmp-common.S (__GI__setjmp): Use + symbols stack frame offsets. + (__sigsetjmp): Likewise. + * sysdeps/powerpc/powerpc64/__longjmp-common.S (__longjmp): Likewise. + * sysdeps/powerpc/powerpc64/ppc-mcount.S (_mcount): Likewise. + * sysdeps/powerpc/powerpc64/crti.S (_init, _fini): Likewise. + * sysdeps/powerpc/powerpc64/crtn.S (_init, _fini): Likewise. + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym + (FRAME_BACKCHAIN): Remove. + (FRAME_CR_SAVE): Likewise. + (FRAME_LR_SAVE): Likewise. + (FRAME_COMPILER_DW): Likewise. + (FRAME_LINKER_DW): Likewise. + (FRAME_TOC_SAVE): Likewise. + (FRAME_PARM_SAVE): Likewise. + (FRAME_PARM1_SAVE, FRAME_PARM2_SAVE, FRAME_PARM3_SAVE, + FRAME_PARM4_SAVE, FRAME_PARM5_SAVE, FRAME_PARM6_SAVE, + FRAME_PARM7_SAVE, FRAME_PARM8_SAVE, FRAME_PARM9_SAVE): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/____longjmp_chk.S + (CHECK_SP): Use symbolic stack frame offsets. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/brk.S (__brk): Use "red + zone" instead of caller's parameter save area for temp storage. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone): + Likewise. Also, use symbolic stack frame offsets. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S (FRAMESIZE, + stackblock): Redefine for _CALL_ELF == 2 to save parameters into + our own stack frame instead of the caller's. + (__socket): Use symbolic stack frame offsets. + +2013-11-12 Ulrich Weigand + Alan Modra + + * elf/elf.h (DT_PPC64_OPT, PPC64_OPT_TLS, PPC64_OPT_MULTI_TOC): + Define. + (STO_PPC64_LOCAL_BIT, STO_PPC64_LOCAL_MASK, + PPC64_LOCAL_ENTRY_OFFSET): Define. + * sysdeps/powerpc/powerpc64/dl-machine.h (ppc64_local_entry_offset): + New function. + (elf_machine_fixup_plt): Call it. + (elf_machine_plt_conflict): Likewise. Add map, sym_map, and + reloc arguments. + (elf_machine_rela): Update call to elf_machine_plt_conflict. + * sysdeps/powerpc/powerpc64/dl-trampoline.S (_dl_runtime_resolve, + _dl_profile_resolve) [_CALL_ELF == 2]: Restore caller's TOC into + r2 before calling target. + +2013-11-12 Ulrich Weigand + Alan Modra + + * sysdeps/powerpc/powerpc64/sysdep.h [_CALL_ELF == 2] + (PPC64_LOAD_FUNCPTR, DOT_LABEL, BODY_LABEL, ENTRY_2, END_2): New + versions of macros to support ELFv2 ABI. + (LOCALENTRY): New macro. + (ENTRY, EALIGN): Use it. + * sysdeps/powerpc/powerpc64/crti.S (_init, _fini): Use LOCALENTRY. + * sysdeps/powerpc/powerpc64/setjmp-common.S (__GI__setjmp): Do not + fall through into ENTRY entry point. + * libc/sysdeps/powerpc/powerpc64/dl-machine.h (Elf64_FuncDesc): + Only define if _CALL_ELF != 2. + + (elf_machine_matches_host): Verify ABI version matches. + (RTLD_START): Use LOCALENTRY. + (elf_machine_type_class): Use SHN_UNDEF PLT handling for ELFv2 ABI. + (PLT_INITIAL_ENTRY_WORDS): New version for _CALL_ELF != 2. + (PLT_ENTRY_WORDS): New macro. + (GLINK_INITIAL_ENTRY_WORDS, GLINK_ENTRY_WORDS): Likewise. + (elf_machine_runtime_setup): Support ELFv2 ABI. + (elf_machine_fixup_plt): Likewise. + (elf_machine_plt_conflict): Likewise. + (resolve_ifunc): Likewise. + * sysdeps/powerpc/powerpc64/dl-irel.h (elf_irela): Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h (VDSO_IFUNC_RET): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/ldsodefs.h + (DL_ADDR_SYM_MATCH): Only define if _CALL_ELF != 2. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S + (makecontext): Support ELFv2 ABI. + * elf/elf.h (EF_PPC64_ABI): Define. + +2013-11-12 Ulrich Weigand + + * sysdeps/powerpc/powerpc64/sysdep.h [ASSEMBLER] (PPC64_LOAD_FUNCPTR): + New assembler macro. + [ASSEMBLER] (ENTRY_1): Do not switch to .text section here ... + [ASSEMBLER] (ENTRY): ... but instead here ... + [ASSEMBLER] (EALIGN): ... and here. + [!ASSEMBLER] (PPC64_LOAD_FUNCPTR): New macro. + [!ASSEMBLER] (ENTRY_1): New macro; set up .opd entry. + [!ASSEMBLER] (ENTRY_2): Use it. + * sysdeps/powerpc/powerpc64/dl-machine.h (RTLD_START): Update for + ENTRY_2 changes. Use PPC64_LOAD_FUNCPTR. + * sysdeps/powerpc/powerpc64/dl-trampoline.S (_dl_runtime_resolve, + _dl_profile_resolve): Use PPC64_LOAD_FUNCPTR. + * sysdeps/powerpc/powerpc64/crti.S (_init, _fini): Use ENTRY_2. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (clone): + Use PPC64_LOAD_FUNCPTR. + +2013-11-12 Alan Modra + + * elf/elf.h (R_PPC64_TLSGD, R_PPC64_TLSLD, R_PPC64_TOCSAVE): Define. + (R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA): Likewise. + (R_PPC64_TPREL16_HIGH, R_PPC64_TPREL16_HIGHA): Likewise. + (R_PPC64_DTPREL16_HIGH, R_PPC64_DTPREL16_HIGHA): Likewise. + + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Add + overflow checking for R_PPC64_ADDR16_HI, R_PPC64_ADDR16_HA, + R_PPC64_TPREL16_HI, and R_PPC64_TPREL16_HA. + Support new R_PPC64_ADDR16_HIGH, R_PPC64_ADDR16_HIGHA, + R_PPC64_TPREL16_HIGH, and R_PPC64_TPREL16_HIGHA relocations. + Fix overflow checking for R_PPC64_ADDR30 and R_PPC64_ADDR32. + +2013-11-12 Ulrich Weigand + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S + (__makecontext): Fix incorrect CFI when backtracing out of + context created via makecontext. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/secontext.S + (__setcontext): Fix incorrect CFI during switch to new context. + (__novec_setcontext): Likewise. + +2013-11-08 Adhemerval Zanella + + * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h (VDSO_IFUNC_RET): + Add artificial ODP entry for vDSO symbol for PPC64. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Adjust includes. + * sysdeps/unix/sysv/linux/powerpc/time.c: Likewise. + +2013-09-25 Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/stackguard-macros.h (POINTER_CHK_GUARD: + Fix thread ID register. + +2013-09-11 Will Newton + + [BZ #15857] + * malloc/malloc.c (__libc_memalign): Check the value of bytes + does not overflow. + +2013-09-11 Will Newton + + [BZ #15856] + * malloc/malloc.c (__libc_valloc): Check the value of bytes + does not overflow. + +2013-09-11 Will Newton + + [BZ #15857] + * malloc/malloc.c (__libc_memalign): Check the value of bytes + does not overflow. + +2013-09-11 Will Newton + + [BZ #15856] + * malloc/malloc.c (__libc_valloc): Check the value of bytes + does not overflow. + +2013-09-11 Will Newton + + [BZ #15855] + * malloc/malloc.c (__libc_pvalloc): Check the value of bytes + does not overflow. + +2013-09-23 Carlos O'Donell + + [BZ #15754] + * elf/Makefile (tests): Add tst-ptrguard1. + (tests-static): Add tst-ptrguard1-static. + (tst-ptrguard1-ARGS): Define. + (tst-ptrguard1-static-ARGS): Define. + * elf/tst-ptrguard1.c: New file. + * elf/tst-ptrguard1-static.c: New file. + * sysdeps/x86_64/stackguard-macros.h: Define POINTER_CHK_GUARD. + * sysdeps/i386/stackguard-macros.h: Likewise. + * sysdeps/powerpc/powerpc32/stackguard-macros.h: Likewise. + * sysdeps/powerpc/powerpc64/stackguard-macros.h: Likewise. + * sysdeps/s390/s390-32/stackguard-macros.h: Likewise. + * sysdeps/s390/s390-64/stackguard-macros.h: Likewise. + * sysdeps/sparc/sparc32/stackguard-macros.h: Likewise. + * sysdeps/sparc/sparc64/stackguard-macros.h: Likewise. + +2013-09-23 Siddhesh Poyarekar + + [BZ #14547] + * string/tst-strcoll-overflow.c: New test case. + * string/Makefile (xtests): Add tst-strcoll-overflow. + * string/strcoll_l.c (STRCOLL): Skip allocating memory for + cache if string sizes may cause integer overflow. + + [BZ #14547] + * string/strcoll_l.c (coll_seq): New members rule, idx, + save_idx and back_us. + (get_next_seq_nocache): New function. + (do_compare_nocache): New function. + (STRCOLL): Use get_next_seq_nocache and do_compare_nocache + when malloc fails. + + * string/strcoll_l.c (coll_seq): New structure. + (get_next_seq_cached): New function. + (get_next_seq): New function. + (do_compare): New function. + (STRCOLL): Use GNU style definition. Simplify implementation + by using get_next_seq, get_next_seq_cached and do_compare. + +2013-10-31 Andreas Schwab + + [BZ# 15917] + * stdio-common/vfscanf.c (_IO_vfwscanf): Handle leading '0' not + followed by 'x' as part of digit sequence. + * stdio-common/tst-sscanf.c (double_tests2): New tests. + +2013-10-04 Adhemerval Zanella + + * sysdeps/powerpc/powerpc64/strcpy.S (strcpy): Add word load/store + to provide a boost for large inputs with word alignment. + * sysdeps/powerpc/powerpc64/stpcpy.S (__stpcpy): Rewrite + implementation based on optimized PPC64 strcpy. + * sysdeps/powerpc/powerpc64/power7/strcpy.S: New file: optimized + strcpy for PPC64/POWER7 based on both doubleword and word load/store. + * sysdeps/powerpc/powerpc64/power7/stpcpy.S: New file: optimized + stpcpy for PPC64/POWER7 based on PPC64/POWER7 strcpy. + +2013-10-25 Siddhesh Poyarekar + + [BZ #16072] + * sysdeps/posix/getaddrinfo.c (gethosts): Allocate tmpbuf on + heap for large requests. + +2013-10-10 Joseph Myers + + * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Check + for NaNs before doing comparisons on argument. + * sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): + Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): + Use stdint types in rather than __attribute__((mode())). + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): + Correct handling of unaligned relocs for little-endian. + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Likewise. + +2013-10-04 Alan Modra + + * configure.in: Map powerpc64le and powerpcle to base_machine/machine. + * configure: Regenerate. + * nptl/shlib-versions: Powerpc*le starts at 2.18. + * shlib-versions: Likewise. + +2013-10-04 Alan Modra + + * string/tester.c (test_memrchr): Increment reported test cycle. + +2013-10-04 Alan Modra + + * string/test-memcpy.c (do_one_test): When reporting errors, print + string address and don't overrun end of string. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/power7/memchr.S: Replace rlwimi with + insrdi. Make better use of reg selection to speed exit slightly. + Schedule entry path a little better. Remove useless "are we done" + checks on entry to main loop. Handle wrapping around zero address. + Correct main loop count. Handle single left-over word from main + loop inline rather than by using loop_small. Remove extra word + case in loop_small caused by wrong loop count. Add little-endian + support. + * sysdeps/powerpc/powerpc32/power7/memchr.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/memrchr.S: Likewise. Use proper + cache hint. + * sysdeps/powerpc/powerpc32/power7/memrchr.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/rawmemchr.S: Add little-endian + support. Avoid rlwimi. + * sysdeps/powerpc/powerpc32/power7/rawmemchr.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/memset.S: Replace rlwimi with + insrdi. Formatting. + * sysdeps/powerpc/powerpc64/power4/memset.S: Likewise. + * sysdeps/powerpc/powerpc64/power6/memset.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/memset.S: Likewise. + * sysdeps/powerpc/powerpc32/power4/memset.S: Likewise. + * sysdeps/powerpc/powerpc32/power6/memset.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/memset.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc32/power4/memcpy.S: Add little endian support. + * sysdeps/powerpc/powerpc32/power6/memcpy.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/memcpy.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/mempcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/memcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/power4/memcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/power6/memcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/memcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/mempcpy.S: Likewise. Make better + use of regs. Use power7 mtocrf. Tidy function tails. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/power7/memcmp.S: Add little-endian support. + Formatting. Consistently use rXXX register defines or rN defines. + Use early exit labels that avoid restoring unused non-volatile regs. + Make cr field use more consistent with rWORDn compares. Rename + regs used as shift registers for unaligned loop, using rN defines + for short lifetime/multiple use regs. + * sysdeps/powerpc/powerpc64/power4/memcmp.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/memcmp.S: Likewise. Exit with + addi 1,1,64 to pop stack frame. Simplify return value code. + * sysdeps/powerpc/powerpc32/power4/memcmp.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/power7/strchr.S (strchr): Add little-endian + support. Correct typos, formatting. Optimize tail. Use insrdi + rather than rlwimi. + * sysdeps/powerpc/powerpc32/power7/strchr.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/strchrnul.S (__strchrnul): Add + little-endian support. Correct typos. + * sysdeps/powerpc/powerpc32/power7/strchrnul.S: Likewise. Use insrdi + rather than rlwimi. + * sysdeps/powerpc/powerpc64/strchr.S (rTMP4, rTMP5): Define. Use + in loop and entry code to keep "and." results. + (strchr): Add little-endian support. Comment. Move cntlzd + earlier in tail. + * sysdeps/powerpc/powerpc32/strchr.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/strcpy.S: Add little-endian support: + * sysdeps/powerpc/powerpc32/strcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/stpcpy.S: Likewise. + * sysdeps/powerpc/powerpc32/stpcpy.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/strcmp.S (rTMP2): Define as r0. + (rTMP): Define as r11. + (strcmp): Add little-endian support. Optimise tail. + * sysdeps/powerpc/powerpc32/strcmp.S: Similarly. + * sysdeps/powerpc/powerpc64/strncmp.S: Likewise. + * sysdeps/powerpc/powerpc32/strncmp.S: Likewise. + * sysdeps/powerpc/powerpc64/power4/strncmp.S: Likewise. + * sysdeps/powerpc/powerpc32/power4/strncmp.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/strncmp.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/strncmp.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/power7/strnlen.S (strnlen): Add + little-endian support. Remove unnecessary "are we done" tests. + Handle "s" wrapping around zero and extremely large "size". + Correct main loop count. Handle single left-over word from main + loop inline rather than by using small_loop. Correct comments. + Delete "zero" tail, use "end_max" instead. + * sysdeps/powerpc/powerpc32/power7/strnlen.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc64/power7/strlen.S (strlen): Add little-endian + support. Don't branch over align. + * sysdeps/powerpc/powerpc32/power7/strlen.S: Likewise. + * sysdeps/powerpc/powerpc64/strlen.S (strlen): Add little-endian + support. Rearrange tmp reg use to suit. Comment. + * sysdeps/powerpc/powerpc32/strlen.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h: New file. + +2013-10-04 Alan Modra + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/makecontext.S: Use + conditional form of branch and link when obtaining pc. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S: Use + HIWORD/LOWORD. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Ditto. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Ditto. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/longjmp.c: Use proper symbol versioning macros. + * sysdeps/powerpc/novmx-longjmp.c: Likewise. + * sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/bsd-setjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/mcount.c: Likewise. + * sysdeps/powerpc/powerpc32/setjmp.S: Likewise. + * sysdeps/powerpc/powerpc64/setjmp.S: Likewise. + * nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Likewise. + +2013-10-04 Anton Blanchard + Alistair Popple + Alan Modra + + [BZ #15723] + * sysdeps/powerpc/jmpbuf-offsets.h: Comment fix. + * sysdeps/powerpc/powerpc32/fpu/__longjmp-common.S: Correct + _dl_hwcap access for little-endian. + * sysdeps/powerpc/powerpc32/fpu/setjmp-common.S: Likewise. Don't + destroy vmx regs when saving unaligned. + * sysdeps/powerpc/powerpc64/__longjmp-common.S: Correct CR load. + * sysdeps/powerpc/powerpc64/setjmp-common.S: Likewise CR save. Don't + destroy vmx regs when saving unaligned. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc32/power4/hp-timing.h (HP_TIMING_NOW): + Don't use a union to pack hi/low value. + +2013-10-04 Anton Blanchard + + * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Correct float constants + for little-endian. + * sysdeps/powerpc/powerpc64/fpu/s_floorf.S: Likewise. + * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Likewise. + * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Likewise. + * sysdeps/powerpc/powerpc64/fpu/s_roundf.S: Likewise. + * sysdeps/powerpc/powerpc64/fpu/s_truncf.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/powerpc32/fpu/s_roundf.S: Increase alignment of + constants to usual value for .cst8 section, and remove redundant + high address load. + * sysdeps/powerpc/powerpc32/power4/fpu/s_llround.S: Use float + constant for 0x1p52. Load little-endian words of double from + correct stack offsets. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/sysdep.h (LOWORD, HIWORD, HISHORT): Define. + * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Load little-endian + words of double from correct stack offsets. + * sysdeps/powerpc/powerpc32/fpu/s_copysignl.S: Likewise. + * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Likewise. + * sysdeps/powerpc/powerpc32/fpu/s_lround.S: Likewise. + * sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: Likewise. + * sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Likewise. + * sysdeps/powerpc/powerpc32/power5+/fpu/s_llround.S: Likewise. + * sysdeps/powerpc/powerpc32/power5+/fpu/s_lround.S: Likewise. + * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: Likewise. + * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: Likewise. + * sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: Likewise. + * sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Likewise. + * sysdeps/powerpc/powerpc32/power6/fpu/s_llround.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S: Likewise. + * sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Use HISHORT. + * sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/fpu_control.h (_FPU_GETCW): Rewrite using + 64-bit int/double union. + (_FPU_SETCW): Likewise. + * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_GET_DI_FPSCR): Likewise. + (_SET_DI_FPSCR, _GET_SI_FPSCR, _SET_SI_FPSCR): Likewise. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/fpu/s_llround.c (__llround): Rewrite. + * sysdeps/powerpc/fpu/s_llroundf.c (__llroundf): Rewrite. + +2013-10-04 Alan Modra + + * sysdeps/powerpc/fpu/s_float_bitwise.h (__float_and_test28): Don't + use vector int constants. + (__float_and_test24, __float_and8, __float_get_exp): Likewise. + +2013-10-04 Anton Blanchard + + * sysdeps/powerpc/fpu/fenv_libc.h (fenv_union_t): Replace int + array with long long. + * sysdeps/powerpc/fpu/e_sqrt.c (__slow_ieee754_sqrt): Adjust. + * sysdeps/powerpc/fpu/e_sqrtf.c (__slow_ieee754_sqrtf): Adjust. + * sysdeps/powerpc/fpu/fclrexcpt.c (__feclearexcept): Adjust. + * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Adjust. + * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Adjust. + * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Adjust. + * sysdeps/powerpc/fpu/feholdexcpt.c (feholdexcept): Adjust. + * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Adjust. + * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Adjust. + * sysdeps/powerpc/fpu/fgetexcptflg.c (__fegetexceptflag): Adjust. + * sysdeps/powerpc/fpu/fraiseexcpt.c (__feraiseexcept): Adjust. + * sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Adjust. + * sysdeps/powerpc/fpu/ftestexcept.c (fetestexcept): Adjust. + +2013-10-04 Anton Blanchard + + * sysdeps/powerpc/bits/mathinline.h (__signbitf): Use builtin. + (__signbit): Likewise. Correct for little-endian. + (__signbitl): Call __signbit. + (lrint): Correct for little-endian. + (lrintf): Call lrint. + +2013-10-04 Alan Modra + + * sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (mynumber): Replace + union 32-bit int array member with 64-bit int array. + (t515, tm256): Double rather than long double. + (__ieee754_sqrtl): Rewrite using 64-bit arithmetic. + +2013-10-04 Alan Modra + + * sysdeps/ieee754/ldbl-128ibm/ieee754.h (union ieee854_long_double): + Delete. + (IEEE854_LONG_DOUBLE_BIAS): Delete. + * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h: Don't include ieee854 + version of math_ldbl.h. + +2013-10-04 Alan Modra + + [BZ #15734], [BZ #15735] + * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c (__ieee754_fmodl): Rewrite + all uses of ieee875 long double macros and unions. Simplify test + for 0.0L. Correct |x|<|y| and |x|=|y| test. Use + ldbl_extract_mantissa value for ix,iy exponents. Properly + normalize after ldbl_extract_mantissa, and don't add hidden bit + already handled. Don't treat low word of ieee854 mantissa like + low word of IBM long double and mask off bit when testing for + zero. + * sysdeps/ieee754/ldbl-128ibm/e_hypotl.c (__ieee754_hypotl): Rewrite + all uses of ieee875 long double macros and unions. Simplify tests + for 0.0L and inf. Correct double adjustment of k. Delete dead code + adjusting ha,hb. Simplify code setting kld. Delete two600 and + two1022, instead use their values. Recognise that tests for large + "a" and small "b" are mutually exclusive. Rename vars. Comment. + * sysdeps/ieee754/ldbl-128ibm/e_remainderl.c (__ieee754_remainderl): + Rewrite all uses of ieee875 long double macros and unions. Simplify + test for 0.0L and nan. Correct negation. + * sysdeps/ieee754/ldbl-128ibm/s_erfl.c (__erfl): Rewrite all uses of + ieee875 long double macros and unions. Correct output for large + magnitude x. Correct absolute value calculation. + (__erfcl): Likewise. + * math/libm-test.inc: Add tests for errors discovered in IBM long + double versions of fmodl, remainderl, erfl and erfcl. + +2013-10-04 Alan Modra + + * sysdeps/ieee754/ldbl-128ibm/e_atan2l.c (__ieee754_atan2l): Rewrite + all uses of ieee854 long double macros and unions. Simplify tests + for long doubles that are fully specified by the high double. + * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c (__ieee754_gammal_r): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c (__ieee754_ilogbl): Likewise. + Remove dead code too. + * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise. + (__ieee754_ynl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_log10l.c (__ieee754_log10l): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_powl.c (__ieee754_powl): Likewise. + Remove dead code too. + * sysdeps/ieee754/ldbl-128ibm/k_tanl.c (__kernel_tanl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_expm1l.c (__expm1l): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_frexpl.c (__frexpl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_isinf_nsl.c (__isinf_nsl): Likewise. + Simplify. + * sysdeps/ieee754/ldbl-128ibm/s_isinfl.c (___isinfl): Likewise. + Simplify. + * sysdeps/ieee754/ldbl-128ibm/s_log1pl.c (__log1pl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_modfl.c (__modfl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c (__nextafterl): Likewise. + Comment on variable precision. + * sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c (__nexttoward): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c (__nexttowardf): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_remquol.c (__remquol): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c (__scalblnl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c (__scalbnl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_tanhl.c (__tanhl): Likewise. + * sysdeps/powerpc/fpu/libm-test-ulps: Adjust tan_towardzero ulps. + +2013-10-04 Alan Modra + + * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h (ldbl_high): Define. + * sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (__ieee754_acoshl): Rewrite + all uses of ieee854 long double macros and unions. + * sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c (__ieee754_atanhl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c (__ieee754_rem_pio2l): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_sinhl.c (__ieee754_sinhl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/k_cosl.c (__kernel_cosl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/k_sincosl.c (__kernel_sincosl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/k_sinl.c (__kernel_sinl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_atanl.c (__atanl): Likewise. + Simplify sign and nan test too. + * sysdeps/ieee754/ldbl-128ibm/s_cosl.c (__cosl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_fabsl.c (__fabsl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_finitel.c (___finitel): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c (___fpclassifyl): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_isnanl.c (___isnanl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c (__issignalingl): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_logbl.c (__logbl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_signbitl.c (___signbitl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_sincosl.c (__sincosl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_sinl.c (__sinl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_tanl.c (__tanl): Likewise. + * sysdeps/powerpc/powerpc32/power7/fpu/s_logbl.c (__logbl): Likewise. + +2013-10-04 Alan Modra + + * stdio-common/printf_size.c (__printf_size): Don't use + union ieee854_long_double in fpnum union. + * stdio-common/printf_fphex.c (__printf_fphex): Likewise. Use + signbit macro to retrieve sign from long double. + * stdio-common/printf_fp.c (___printf_fp): Use signbit macro to + retrieve sign from long double. + * sysdeps/ieee754/ldbl-128ibm/printf_fphex.c: Adjust for fpnum change. + * sysdeps/ieee754/ldbl-128/printf_fphex.c: Likewise. + * sysdeps/ieee754/ldbl-96/printf_fphex.c: Likewise. + * sysdeps/x86_64/fpu/printf_fphex.c: Likewise. + * math/test-misc.c (main): Don't use union ieee854_long_double. + +2013-10-04 Alan Modra + + [BZ #15680] + * sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c: Comment fix. + * sysdeps/ieee754/ldbl-128ibm/printf_fphex.c + (PRINT_FPHEX_LONG_DOUBLE): Tidy code by moving -53 into ediff + calculation. Remove unnecessary test for denormal exponent. + * sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c (__mpn_extract_long_double): + Correct handling of denormals. Avoid undefined shift behaviour. + Correct normalisation of low mantissa when low double is denormal. + * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h + (ldbl_extract_mantissa): Likewise. Comment. Use uint64_t* for hi64. + (ldbl_insert_mantissa): Make both hi64 and lo64 parms uint64_t. + Correct normalisation of low mantissa. Test for overflow of high + mantissa and normalise. + (ldbl_nearbyint): Use more readable constant for two52. + * sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c + (__mpn_construct_long_double): Fix test for overflow of high + mantissa and correct normalisation. Avoid undefined shift. + +2013-10-04 Alan Modra + + * sysdeps/ieee754/ldbl-128ibm/ieee754.h + (union ibm_extended_long_double): Define as an array of ieee754_double. + (IBM_EXTENDED_LONG_DOUBLE_BIAS): Delete. + * sysdeps/ieee754/ldbl-128ibm/printf_fphex.c: Update all references + to ibm_extended_long_double and IBM_EXTENDED_LONG_DOUBLE_BIAS. + * sysdeps/ieee754/ldbl-128ibm/e_exp10l.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/e_expl.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/math_ldbl.h: Likewise. + * sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/strtold_l.c: Likewise. + * sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c: Likewise. + +2013-09-09 Allan McRae + + [BZ #15893] + * stdlib/isomac.c (get_null_defines): Fix memory leak. + + [BZ #15892] + * libio/memstream.c (open_memstream): Fix memory leak. + * libio/wmemstream.c (open_wmemstream): Likewise. + + [BZ #15895] + * nscd/netgroupcache.c: Fix nesting of ifdefs. + +2013-09-05 Adhemerval Zanella + + * sysdeps/powerpc/powerpc32/power7/memrchr.S (__memrchr): Fix invalid + memory access for final bytes in some large inputs. + * sysdeps/powerpc/powerpc64/power7/memrchr.S (__memrchr): Likewise. + +2013-09-05 Adhemerval Zanella + + * string/test-memrchr.c: New file. + * string/test-memrchr-ifunc.c: New file. + * string/Makefile: Add new memrchr testcase. + +2013-09-03 Joseph Myers + + [BZ #15427] + * sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Use + 2**-30 instead of 2**-70 as threshold for returning -log(|x|). + * math/libm-test.inc (lgamma_test_data): Add more tests. + * sysdeps/i386/fpu/libm-test-ulps: Update. + * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. + +2013-09-03 Ondřej Bílka + + * sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: New file. + * sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list): + Add ifunc. + * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): + Add strcmp-sse2-unaligned + * sysdeps/x86_64/multiarch/strcmp.S (strcmp): Add ifunc. + +2013-09-02 Mike Frysinger + + * Versions.def (libc): Add GLIBC_2.19. + +2013-09-02 Mike Frysinger + + * sysdeps/unix/sysv/linux/tst-fanotify.c: New test. + * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-fanotify. + +2013-09-02 Joseph Myers + + [BZ #14155] + * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_jnf): Use double for + intermediate calculations in recurrence. + (__ieee754_ynf): Likewise. + * math/libm-test.inc (jn_test_data): Do not allow spurious + underflow exception. Add more tests. + (yn_test_data): Add more tests. + * sysdeps/i386/fpu/libm-test-ulps: Update. + * sysdeps/x86_64/fpu/libm-test-ulps: Likewise. + +2013-08-29 Thomas Schwinge + + [BZ #15522] strtod ("nan(N)") returning a sNaN in some cases + + * stdlib/strtof_l.c (SET_MANTISSA): Rewrite. + * stdlib/strtod_l.c (SET_MANTISSA): Likewise. + * sysdeps/ieee754/ldbl-64-128/strtold_l.c (SET_MANTISSA): + Likewise. + * sysdeps/ieee754/ldbl-96/strtold_l.c (SET_MANTISSA): Likewise. + * sysdeps/ieee754/ldbl-128/strtold_l.c (SET_MANTISSA): Likewise. + * sysdeps/ieee754/ldbl-128ibm/strtold_l.c (SET_MANTISSA): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/ieee754.h + (ibm_extended_long_double): Add ieee_nan member. + * stdlib/tst-strtod6.c (test): New function, renamed from do_test. + (do_test): New function. + + * math/basic-test.c (TEST_CONVERT): New macro, renamed from + TEST_TRUNC. + (convert_dfsf_test, convert_tfsf_test, convert_tfdf_test): New + functions, renamed from truncdfsf_test, trunctfsf_test, + trunctfdf_test. + (convert_sfdf_test, convert_sftf_test, convert_dftf_test): New + functions. + (do_test): Run all these. + +2013-08-23 Joseph Myers + + [BZ #15532] + * math/s_cexp.c (__cexp): Return NaN + i0 for NaN + i0 argument. + * math/s_cexpf.c (__cexpf): Likewise. + * math/s_cexpl.c (__cexpl): Likewise. + * math/libm-test.inc (cexp_test_data): Correct expected return + value for NaN + i0. Add another test. + +2013-08-21 Joseph Myers + + [BZ #15797] + * math/s_fdim.c (__fdim): Check for infinite arguments if result + is infinite, not alongside NaN test. + * math/s_fdimf.c (__fdimf): Likewise. + * math/s_fdiml.c (__fdiml): Likewise. + * math/libm-test.inc (fdim_test_data): Add more tests. Test that + errno is unchanged. + +2013-07-23 Adhemerval Zanella + + [BZ #15867] + * sysdeps/powerpc/powerpc32/backtrace.c (__backtrace): Handle signal + trampoline stack frame information. + * sysdeps/powerpc/powerpc64/backtrace.c (__backtrace): Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h + (__vdso_sigtramp_rt64): New variable: PPC64 signal trampoline. + (__vdso_sigtramp32): New variable: PPC32 signal trampoline. + (__vdso_sigtramp_rt32): New variable: PPC32 signal trampoline. + * sysdeps/unix/sysv/linux/powerpc/init-first.c + (_libc_vdso_platform_setup): Initialize the signal trampolines. + * debug/tst-backtrace5.c (fn): Add an option set modify sigaction + sa_flags value. + * debug/tst-backtrace6.c: New file: check backtrace for signal frames, + interrupting a syscall and set with option SA_SIGINFO. + +2013-08-20 Joseph Myers + + [BZ #15531] + * math/s_cproj.c (__cproj): Only return an infinity if one part of + argument is infinite. + * math/s_cprojf.c (__cprojf): Likewise. + * math/s_cprojl.c (__cprojl): Likewise. + * sysdeps/ieee754/ldbl-128ibm/s_cprojl.c (__cprojl): Likewise. + * math/libm-test.inc (cproj_test_data): Add more tests. + + * sysdeps/unix/sysv/linux/mmap64.c: Include . + + * sysdeps/unix/sysv/linux/mmap64.c (__mmap64) + [MMAP2_PAGE_SHIFT == -1]: Use __getpagesize to determine page + size. Use __ffs to determine corresponding shift. + +2013-08-20 Andreas Arnez + + * elf/setup-vdso.h (setup_vdso): Fix missing string termination. + +2013-08-16 Florian Weimer + + [BZ #14699] + CVE-2013-4237 + * sysdeps/posix/dirstream.h (struct __dirstream): Add errcode + member. + * sysdeps/posix/opendir.c (__alloc_dir): Initialize errcode + member. + * sysdeps/posix/rewinddir.c (rewinddir): Reset errcode member. + * sysdeps/posix/readdir_r.c (__READDIR_R): Enforce NAME_MAX limit. + Return delayed error code. Remove GETDENTS_64BIT_ALIGNED + conditional. + * sysdeps/unix/sysv/linux/wordsize-64/readdir_r.c: Do not define + GETDENTS_64BIT_ALIGNED. + * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise. + * manual/filesys.texi (Reading/Closing Directory): Document + ENAMETOOLONG return value of readdir_r. Recommend readdir more + strongly. + * manual/conf.texi (Limits for Files): Add portability note to + NAME_MAX, PATH_MAX. + (Pathconf): Add portability note for _PC_NAME_MAX, _PC_PATH_MAX. + + 2014-06-03 Guo Yixuan + + [BZ #16882] + * nptl/sysdeps/sparc/sparc32/pthread_spin_lock.S + (pthread_spin_lock): Branch out of spin loop to proper location. + * nptl/sysdeps/sparc/sparc64/pthread_spin_lock.S + (pthread_spin_lock): Likewise. + + * nptl/tst-spin4.c: New test. + * nptl/Makefile (tests): Add tst-spin4. + + 2014-05-17 Jose E. Marchesi + + [BZ #16958] + * sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Add missing + membar to avoid block loads/stores to overlap previous stores. + + 2014-05-16 Aurelien Jarno + + [BZ #16943] + * sysdeps/unix/sysv/linux/sparc/bits/resource.h: Declare prlimit + and prlimit64. + + 2014-05-06 Aurelien Jarno + + [BZ# 16916] + * sysdeps/unix/sysv/linux/sparc/bits/eventfd.h (EFD_SEMAPHORE): + Define. + + 2014-05-01 David S. Miller + + [BZ #16885] + * sysdeps/sparc/sparc64/strcmp.S: Fix end comparison handling when + multiple zero bytes exist at the end of a string. + Reported by Aurelien Jarno + + * string/test-strcmp.c (check): Add explicit test for situations where + there are multiple zero bytes after the first. + + 2014-01-29 H.J. Lu + + [BZ #16510] + * sysdeps/x86/fpu/bits/mathinline.h: Check __SSE2_MATH__ instead + of __x86_64__ when disabling x87 inline functions. + + 2014-01-20 H.J. Lu + + [BZ #15605] + * sysdeps/x86_64/x32/symbol-hacks.h: Include generic symbol-hacks.h. + + 2014-01-04 Maxim Kuvyrkov + Ondřej Bílka + + [BZ #15073] + * malloc/malloc.c (_int_free): Perform sanity check only if we + have_lock. + 2013-11-11 David S. Miller [BZ #16150] diff --cc NEWS index 324dd55d750,31664e40cc5..ecccd4b68d3 --- a/NEWS +++ b/NEWS @@@ -9,70 -9,8 +9,71 @@@ Version 2.18. * The following bugs are resolved with this release: - 14143, 14155, 14547, 14699, 15532, 15427, 15522, 15680, 15723, 15734, - 15735, 15797, 15892, 15895, 15909, 15915, 15917, 15946, 15996, 16072, - 16150, 16414, 16430, 16431, 16617, 16618, 17048, 17137, 17187, 17325, - 17625, 17630, 18104. - 15073, 15128, 15909, 15996, 16150, 16169, 16387, 16510, 16885, 16916, - 16943, 16958. ++ 14143, 14155, 14547, 14699, 15073, 15128, 15532, 15427, 15522, 15680, ++ 15723, 15734, 15735, 15797, 15892, 15895, 15909, 15915, 15917, 15946, ++ 15996, 16072, 16150, 16169, 16387, 16414, 16430, 16431, 16510, 16617, ++ 16618, 16885, 16916, 16943, 16958, 17048, 17137, 17187, 17325, 17625, ++ 17630, 18104. + +* Support for powerpc64le has been added. + +* CVE-2104-7817 The wordexp function could ignore the WRDE_NOCMD flag + under certain input conditions resulting in the execution of a shell for + command substitution when the applicaiton did not request it. The + implementation now checks WRDE_NOCMD immediately before executing the + shell and returns the error WRDE_CMDSUB as expected. + +* CVE-2012-3406 printf-style functions could run into a stack overflow when + processing format strings with a large number of format specifiers. + +* CVE-2014-9402 The nss_dns implementation of getnetbyname could run into an + infinite loop if the DNS response contained a PTR record of an unexpected + format. + +* CVE-2014-4043 The posix_spawn_file_actions_addopen implementation did not + copy the path argument. This allowed programs to cause posix_spawn to + deference a dangling pointer, or use an unexpected pathname argument if + the string was modified after the posix_spawn_file_actions_addopen + invocation. + +* Locale names, including those obtained from environment variables (LANG + and the LC_* variables), are more tightly checked for proper syntax. + setlocale will now fail (with EINVAL) for locale names that are overly + long, contain slashes without starting with a slash, or contain ".." path + components. (CVE-2014-0475) Previously, some valid locale names were + silently replaced with the "C" locale when running in AT_SECURE mode + (e.g., in a SUID program). This is no longer necessary because of the + additional checks. + +* Support for loadable gconv transliteration modules has been removed. + The support for transliteration modules has been non-functional for + over a decade, and the removal is prompted by security defects. The + normal gconv conversion modules are still supported. Transliteration + with //TRANSLIT is still possible, and the //IGNORE specifier + continues to be supported. (CVE-2014-5119) + +* Decoding a crafted input sequence in the character sets IBM933, IBM935, + IBM937, IBM939, IBM1364 could result in an out-of-bounds array read, + resulting a denial-of-service security vulnerability in applications which + use functions related to iconv. (CVE-2014-6040) + +* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes + to the d_name member of struct dirent, or omit the terminating NUL + character. (Bugzilla #14699). + +* CVE-2013-4458 Stack overflow in getaddrinfo with large number of results + for AF_INET6 has been fixed (Bugzilla #16072). + +* CVE-2013-4332 The pvalloc, valloc, memalign, posix_memalign and + aligned_alloc functions could allocate too few bytes or corrupt the + heap when passed very large allocation size values (Bugzilla #15855, + #15856, #15857). + +* CVE-2012-4424 The strcoll implementation uses malloc to cache indices and + rules for large collation sequences to optimize multiple passes and falls + back to alloca if malloc fails, resulting in a possible stack overflow. + The implementation now falls back to an uncached collation sequence lookup + if malloc fails. Version 2.18 @@@ -80,36 -18,18 +81,36 @@@ 2546, 2560, 5159, 6809, 7006, 10060, 10062, 10283, 10357, 10686, 11120, 11561, 12310, 12387, 12492, 12515, 12723, 13550, 13889, 13951, 13988, - 14142, 14176, 14200, 14256, 14280, 14293, 14317, 14327, 14478, 14496, - 14582, 14686, 14812, 14888, 14894, 14907, 14908, 14909, 14920, 14952, - 14964, 14981, 14982, 14985, 14991, 14994, 14996, 15000, 15003, 15006, - 15007, 15014, 15020, 15022, 15023, 15036, 15054, 15055, 15062, 15078, - 15084, 15085, 15086, 15100, 15160, 15214, 15221, 15232, 15234, 15283, - 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, 15335, 15336, - 15337, 15339, 15342, 15346, 15359, 15361, 15366, 15380, 15381, 15394, - 15395, 15405, 15406, 15409, 15416, 15418, 15419, 15423, 15424, 15426, - 15429, 15431, 15432, 15441, 15442, 15448, 15465, 15480, 15485, 15488, - 15490, 15492, 15493, 15497, 15506, 15529, 15536, 15553, 15577, 15583, - 15618, 15627, 15631, 15654, 15655, 15666, 15667, 15674, 15711, 15755, - 15759, 15985, 16882. + 14142, 14155, 14176, 14200, 14256, 14280, 14293, 14317, 14327, 14478, + 14496, 14582, 14686, 14699, 14812, 14888, 14894, 14907, 14908, 14909, + 14920, 14952, 14964, 14981, 14982, 14985, 14991, 14994, 14996, 15000, + 15003, 15006, 15007, 15014, 15020, 15022, 15023, 15036, 15054, 15055, + 15062, 15078, 15084, 15085, 15086, 15100, 15160, 15214, 15221, 15232, + 15234, 15283, 15285, 15287, 15304, 15305, 15307, 15309, 15327, 15330, + 15331, 15335, 15336, 15337, 15339, 15342, 15346, 15359, 15361, 15366, + 15380, 15381, 15394, 15395, 15405, 15406, 15409, 15416, 15418, 15419, + 15423, 15424, 15426, 15427, 15429, 15431, 15432, 15441, 15442, 15448, + 15465, 15480, 15485, 15488, 15490, 15492, 15493, 15497, 15506, 15522, + 15529, 15532, 15536, 15553, 15577, 15583, 15618, 15627, 15631, 15654, + 15655, 15666, 15667, 15674, 15711, 15755, 15759, 15797, 15892, 15893, - 15895. ++ 15895, 16882. + +* CVE-2013-4332 The pvalloc, valloc, memalign, posix_memalign and + aligned_alloc functions could allocate too few bytes or corrupt the + heap when passed very large allocation size values (Bugzilla #15855, + #15856, #15857). + +* CVE-2013-4788 The pointer guard used for pointer mangling was not + initialized for static applications resulting in the security feature + being disabled. The pointer guard is now correctly initialized to a + random value for static applications. Existing static applications need + to be recompiled to take advantage of the fix (bug 15754). + +* CVE-2012-4412 The strcoll implementation caches indices and rules for + large collation sequences to optimize multiple passes. This cache + computation may overflow for large collation sequences and may cause a + stack or buffer overflow. This is now fixed to use a slower algorithm + which does not use a cache if there is an integer overflow. * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal has been fixed by disabling the use of pt_chown (Bugzilla #15755).