r6051 - in glibc-package/trunk/debian: . patches
Author: aurel32
Date: 2014-05-06 22:42:24 +0000 (Tue, 06 May 2014)
New Revision: 6051
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/svn-updates.diff
Log:
patches/svn-updates.diff: update from 2.18 branch, to fix a race in free()
of fastbin chunk.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2014-05-06 22:31:36 UTC (rev 6050)
+++ glibc-package/trunk/debian/changelog 2014-05-06 22:42:24 UTC (rev 6051)
@@ -33,6 +33,8 @@
* patches/any/sparc/cvs-efd_semaphore.diff: new patch from upstream to
declare EFD_SEMAPHORE in <bits/eventfd.h> on SPARC. Closes: #703559,
#737697.
+ * patches/svn-updates.diff: update from 2.18 branch, to fix a race in free()
+ of fastbin chunk.
-- Adam Conrad <adconrad@0c3.net> Sun, 27 Apr 2014 23:15:13 -0600
Modified: glibc-package/trunk/debian/patches/svn-updates.diff
===================================================================
--- glibc-package/trunk/debian/patches/svn-updates.diff 2014-05-06 22:31:36 UTC (rev 6050)
+++ glibc-package/trunk/debian/patches/svn-updates.diff 2014-05-06 22:42:24 UTC (rev 6051)
@@ -1,8 +1,50 @@
-diff --git a/ChangeLog b/ChangeLog
-index 0dbefe3..1e5efa7 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,19 @@
+SVN update of svn://svn.eglibc.org/branches/eglibc-2_18 from revision 24653
+
+Index: NEWS
+===================================================================
+--- a/NEWS (révision 24653)
++++ b/NEWS (révision 25477)
+@@ -9,7 +9,7 @@
+
+ * The following bugs are resolved with this release:
+
+- 15909, 15996.
++ 15073, 15128, 15909, 15996, 16150, 16169, 16387, 16510.
+
+ Version 2.18
+
+@@ -28,7 +28,7 @@
+ 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.
++ 15759, 15985.
+
+ * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
+ has been fixed by disabling the use of pt_chown (Bugzilla #15755).
+Index: ChangeLog
+===================================================================
+--- a/ChangeLog (révision 24653)
++++ b/ChangeLog (révision 25477)
+@@ -1,3 +1,37 @@
++2014-01-29 H.J. Lu <hongjiu.lu@intel.com>
++
++ [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 <hongjiu.lu@intel.com>
++
++ [BZ #15605]
++ * sysdeps/x86_64/x32/symbol-hacks.h: Include generic symbol-hacks.h.
++
++2014-01-04 Maxim Kuvyrkov <maxim@kugelworks.com>
++ Ondřej Bílka <neleai@seznam.cz>
++
++ [BZ #15073]
++ * malloc/malloc.c (_int_free): Perform sanity check only if we
++ have_lock.
++
+2013-11-11 David S. Miller <davem@davemloft.net>
+
+ [BZ #16150]
@@ -22,46 +64,151 @@
2013-09-06 David S. Miller <davem@davemloft.net>
* po/zh_TW.po: Update Chinese (traditional) translation from
-diff --git a/NEWS b/NEWS
-index fb6069d..df97235 100644
---- a/NEWS
-+++ b/NEWS
-@@ -9,7 +9,7 @@ Version 2.18.1
+Index: sysdeps/x86/fpu/bits/mathinline.h
+===================================================================
+--- a/sysdeps/x86/fpu/bits/mathinline.h (révision 24653)
++++ b/sysdeps/x86/fpu/bits/mathinline.h (révision 25477)
+@@ -1,5 +1,5 @@
+ /* Inline math functions for i387 and SSE.
+- Copyright (C) 1995-2013 Free Software Foundation, Inc.
++ Copyright (C) 1995-2014 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
- * The following bugs are resolved with this release:
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -384,7 +384,7 @@
+ # endif
+ #endif
-- 15909, 15996.
-+ 15909, 15996, 16150.
-
- Version 2.18
+-#ifndef __x86_64__
++#ifndef __SSE2_MATH__
+ # if ((!defined __NO_MATH_INLINES || defined __LIBC_INTERNAL_MATH_INLINES) \
+ && defined __OPTIMIZE__)
-@@ -28,7 +28,7 @@ Version 2.18
- 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.
-+ 15759, 15985.
+@@ -970,4 +970,4 @@
+ return __value;)
+ # endif
- * CVE-2013-2207 Incorrectly granting access to another user's pseudo-terminal
- has been fixed by disabling the use of pt_chown (Bugzilla #15755).
-diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
-index 4a4db09..0fc0a4b 100644
---- a/ports/ChangeLog.alpha
-+++ b/ports/ChangeLog.alpha
-@@ -1,3 +1,8 @@
-+2013-11-16 Richard Henderson <rth@redhat.com>
-+
-+ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
-+ before each signal thunk.
-+
- 2013-07-02 Richard Henderson <rth@redhat.com>
-
- * sysdeps/alpha/fpu/libm-test-ulps: Update.
-diff --git a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
-index 3d291fd..6efa738 100644
---- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
-+++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
-@@ -83,14 +83,21 @@ PSEUDO_END(__syscall_rt_sigaction)
+-#endif /* !__x86_64__ */
++#endif /* !__SSE2_MATH__ */
+Index: sysdeps/x86_64/x32/symbol-hacks.h
+===================================================================
+--- a/sysdeps/x86_64/x32/symbol-hacks.h (révision 24653)
++++ b/sysdeps/x86_64/x32/symbol-hacks.h (révision 25477)
+@@ -1 +1 @@
+-/* Fortunately nothing to do. */
++#include <sysdeps/generic/symbol-hacks.h>
+Index: sysdeps/sparc/sparc64/multiarch/addmul_1.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/addmul_1.S (révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.S (révision 25477)
+@@ -42,7 +42,7 @@
+ sethi %gdop_hix22(__mpn_addmul_1_generic), %o1
+ xor %o1, %gdop_lox10(__mpn_addmul_1_generic), %o1
+ # else
+- set __mpn_addmul_1_vis3, %o1
++ set __mpn_addmul_1_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/submul_1.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/submul_1.S (révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/submul_1.S (révision 25477)
+@@ -42,7 +42,7 @@
+ sethi %gdop_hix22(__mpn_submul_1_generic), %o1
+ xor %o1, %gdop_lox10(__mpn_submul_1_generic), %o1
+ # else
+- set __mpn_submul_1_vis3, %o1
++ set __mpn_submul_1_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/add_n.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/add_n.S (révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/add_n.S (révision 25477)
+@@ -42,7 +42,7 @@
+ sethi %gdop_hix22(__mpn_add_n_generic), %o1
+ xor %o1, %gdop_lox10(__mpn_add_n_generic), %o1
+ # else
+- set __mpn_add_n_vis3, %o1
++ set __mpn_add_n_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/sub_n.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/sub_n.S (révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/sub_n.S (révision 25477)
+@@ -42,7 +42,7 @@
+ sethi %gdop_hix22(__mpn_sub_n_generic), %o1
+ xor %o1, %gdop_lox10(__mpn_sub_n_generic), %o1
+ # else
+- set __mpn_sub_n_vis3, %o1
++ set __mpn_sub_n_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc64/multiarch/mul_1.S
+===================================================================
+--- a/sysdeps/sparc/sparc64/multiarch/mul_1.S (révision 24653)
++++ b/sysdeps/sparc/sparc64/multiarch/mul_1.S (révision 25477)
+@@ -42,7 +42,7 @@
+ sethi %gdop_hix22(__mpn_mul_1_generic), %o1
+ xor %o1, %gdop_lox10(__mpn_mul_1_generic), %o1
+ # else
+- set __mpn_mul_1_vis3, %o1
++ set __mpn_mul_1_generic, %o1
+ # endif
+ 10:
+ # ifdef SHARED
+Index: sysdeps/sparc/sparc32/fpu/s_fdim.S
+===================================================================
+--- a/sysdeps/sparc/sparc32/fpu/s_fdim.S (révision 24653)
++++ b/sysdeps/sparc/sparc32/fpu/s_fdim.S (révision 25477)
+@@ -30,7 +30,8 @@
+ fbug 1f
+ st %g0, [%sp + 76]
+ ldd [%sp + 72], %f0
+- fnegd %f0, %f2
++ fnegs %f0, %f2
++ fmovs %f1, %f3
+ 1: retl
+ fsubd %f0, %f2, %f0
+ END(__fdim)
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+ Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+ Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+ Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
+===================================================================
+
+Modification de propriétés sur ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data
+___________________________________________________________________
+Modified: svn:mergeinfo
+ Fusionné /fsf/glibc-2_18-branch/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data:r24307-25237
+Index: ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S
+===================================================================
+--- a/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (révision 24653)
++++ b/ports/sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (révision 25477)
+@@ -83,14 +83,21 @@
cfi_offset (64, \base + 2 * 8)
.endm
@@ -71,9 +218,9 @@
cfi_return_column (64)
.cfi_signal_frame
SIGCONTEXT_REGS -648
--
- cfi_def_cfa_offset (648)
-+
++ cfi_def_cfa_offset (648)
+
+- cfi_def_cfa_offset (648)
+ /* While this frame is marked as a signal frame, that only applies
+ to how this return address is handled for the outer frame.
+ The return address that arrived here, from the inner frame, is
@@ -86,95 +233,225 @@
__syscall_sigreturn:
mov sp, a0
ldi v0, __NR_sigreturn
-@@ -98,8 +105,11 @@ __syscall_sigreturn:
+@@ -98,8 +105,11 @@
.size __syscall_sigreturn, .-__syscall_sigreturn
.type __syscall_sigreturn, @function
-- .align 4
+ /* See above wrt including the nop. */
- cfi_def_cfa_offset (176 + 648)
++ cfi_def_cfa_offset (176 + 648)
+ nop
-+ .align 4
+ .align 4
+- cfi_def_cfa_offset (176 + 648)
+
__syscall_rt_sigreturn:
mov sp,a0
ldi v0,__NR_rt_sigreturn
-diff --git a/sysdeps/sparc/sparc32/fpu/s_fdim.S b/sysdeps/sparc/sparc32/fpu/s_fdim.S
-index 2f0c5ce..22f69ce 100644
---- a/sysdeps/sparc/sparc32/fpu/s_fdim.S
-+++ b/sysdeps/sparc/sparc32/fpu/s_fdim.S
-@@ -30,7 +30,8 @@ ENTRY(__fdim)
- fbug 1f
- st %g0, [%sp + 76]
- ldd [%sp + 72], %f0
-- fnegd %f0, %f2
-+ fnegs %f0, %f2
-+ fmovs %f1, %f3
- 1: retl
- fsubd %f0, %f2, %f0
- END(__fdim)
-diff --git a/sysdeps/sparc/sparc64/multiarch/add_n.S b/sysdeps/sparc/sparc64/multiarch/add_n.S
-index 25cae39..22c6e58 100644
---- a/sysdeps/sparc/sparc64/multiarch/add_n.S
-+++ b/sysdeps/sparc/sparc64/multiarch/add_n.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_add_n)
- sethi %gdop_hix22(__mpn_add_n_generic), %o1
- xor %o1, %gdop_lox10(__mpn_add_n_generic), %o1
- # else
-- set __mpn_add_n_vis3, %o1
-+ set __mpn_add_n_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/addmul_1.S b/sysdeps/sparc/sparc64/multiarch/addmul_1.S
-index a1659e4..a65c934 100644
---- a/sysdeps/sparc/sparc64/multiarch/addmul_1.S
-+++ b/sysdeps/sparc/sparc64/multiarch/addmul_1.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_addmul_1)
- sethi %gdop_hix22(__mpn_addmul_1_generic), %o1
- xor %o1, %gdop_lox10(__mpn_addmul_1_generic), %o1
- # else
-- set __mpn_addmul_1_vis3, %o1
-+ set __mpn_addmul_1_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/mul_1.S b/sysdeps/sparc/sparc64/multiarch/mul_1.S
-index 25f51bf..811754e 100644
---- a/sysdeps/sparc/sparc64/multiarch/mul_1.S
-+++ b/sysdeps/sparc/sparc64/multiarch/mul_1.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_mul_1)
- sethi %gdop_hix22(__mpn_mul_1_generic), %o1
- xor %o1, %gdop_lox10(__mpn_mul_1_generic), %o1
- # else
-- set __mpn_mul_1_vis3, %o1
-+ set __mpn_mul_1_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/sub_n.S b/sysdeps/sparc/sparc64/multiarch/sub_n.S
-index 5e15bea..3963790 100644
---- a/sysdeps/sparc/sparc64/multiarch/sub_n.S
-+++ b/sysdeps/sparc/sparc64/multiarch/sub_n.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_sub_n)
- sethi %gdop_hix22(__mpn_sub_n_generic), %o1
- xor %o1, %gdop_lox10(__mpn_sub_n_generic), %o1
- # else
-- set __mpn_sub_n_vis3, %o1
-+ set __mpn_sub_n_generic, %o1
- # endif
- 10:
- # ifdef SHARED
-diff --git a/sysdeps/sparc/sparc64/multiarch/submul_1.S b/sysdeps/sparc/sparc64/multiarch/submul_1.S
-index 68552e9..6c4c3a3 100644
---- a/sysdeps/sparc/sparc64/multiarch/submul_1.S
-+++ b/sysdeps/sparc/sparc64/multiarch/submul_1.S
-@@ -42,7 +42,7 @@ ENTRY(__mpn_submul_1)
- sethi %gdop_hix22(__mpn_submul_1_generic), %o1
- xor %o1, %gdop_lox10(__mpn_submul_1_generic), %o1
- # else
-- set __mpn_submul_1_vis3, %o1
-+ set __mpn_submul_1_generic, %o1
- # endif
- 10:
- # ifdef SHARED
+Index: ports/sysdeps/unix/sysv/linux/aarch64/clone.S
+===================================================================
+--- a/ports/sysdeps/unix/sysv/linux/aarch64/clone.S (révision 24653)
++++ b/ports/sysdeps/unix/sysv/linux/aarch64/clone.S (révision 25477)
+@@ -63,6 +63,7 @@
+ mov x8, #SYS_ify(clone)
+ /* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid. */
+ svc 0x0
++ cfi_endproc
+ cmp x0, #0
+ beq 2f
+ blt 3f
+@@ -72,6 +73,9 @@
+ b syscall_error
+
+ 2:
++ cfi_startproc
++ cfi_undefined (x30)
++ mov x29, 0
+ #ifdef RESET_PID
+ tbnz x5, #CLONE_THREAD_BIT, 3f
+ mov x0, #-1
+@@ -93,7 +97,8 @@
+
+ /* We are done, pass the return value through x0. */
+ b HIDDEN_JUMPTARGET(_exit)
+-
++ cfi_endproc
++ cfi_startproc
+ PSEUDO_END (__clone)
+
+ weak_alias (__clone, clone)
+Index: ports/sysdeps/aarch64/fpu/fpu_control.h
+===================================================================
+--- a/ports/sysdeps/aarch64/fpu/fpu_control.h (révision 24653)
++++ b/ports/sysdeps/aarch64/fpu/fpu_control.h (révision 25477)
+@@ -59,6 +59,9 @@
+ E E D D
+ E E
+ */
++
++#define _FPU_FPCR_RM_MASK 0xc00000
++
+ #define _FPU_FPCR_MASK_IXE 0x1000
+ #define _FPU_FPCR_MASK_UFE 0x0800
+ #define _FPU_FPCR_MASK_OFE 0x0400
+Index: ports/sysdeps/aarch64/dl-trampoline.S
+===================================================================
+--- a/ports/sysdeps/aarch64/dl-trampoline.S (révision 24653)
++++ b/ports/sysdeps/aarch64/dl-trampoline.S (révision 25477)
+@@ -41,8 +41,8 @@
+ cfi_rel_offset (lr, 8)
+
+ /* Save arguments. */
+- stp x8, x9, [sp, #-80]!
+- cfi_adjust_cfa_offset (80)
++ stp x8, x9, [sp, #-(80+8*16)]!
++ cfi_adjust_cfa_offset (80+8*16)
+ cfi_rel_offset (x8, 0)
+ cfi_rel_offset (x9, 8)
+
+@@ -62,11 +62,27 @@
+ cfi_rel_offset (x0, 64)
+ cfi_rel_offset (x1, 72)
+
++ stp q0, q1, [sp, #(80+0*16)]
++ cfi_rel_offset (q0, 80+0*16)
++ cfi_rel_offset (q1, 80+1*16)
++
++ stp q2, q3, [sp, #(80+2*16)]
++ cfi_rel_offset (q0, 80+2*16)
++ cfi_rel_offset (q1, 80+3*16)
++
++ stp q4, q5, [sp, #(80+4*16)]
++ cfi_rel_offset (q0, 80+4*16)
++ cfi_rel_offset (q1, 80+5*16)
++
++ stp q6, q7, [sp, #(80+6*16)]
++ cfi_rel_offset (q0, 80+6*16)
++ cfi_rel_offset (q1, 80+7*16)
++
+ /* Get pointer to linker struct. */
+ ldr x0, [ip0, #-8]
+
+ /* Prepare to call _dl_fixup(). */
+- ldr x1, [sp, 80] /* Recover &PLTGOT[n] */
++ ldr x1, [sp, 80+8*16] /* Recover &PLTGOT[n] */
+
+ sub x1, x1, ip0
+ add x1, x1, x1, lsl #1
+@@ -81,12 +97,16 @@
+ mov ip0, x0
+
+ /* Get arguments and return address back. */
++ ldp q0, q1, [sp, #(80+0*16)]
++ ldp q2, q3, [sp, #(80+2*16)]
++ ldp q4, q5, [sp, #(80+4*16)]
++ ldp q6, q7, [sp, #(80+6*16)]
+ ldp x0, x1, [sp, #64]
+ ldp x2, x3, [sp, #48]
+ ldp x4, x5, [sp, #32]
+ ldp x6, x7, [sp, #16]
+- ldp x8, x9, [sp], #80
+- cfi_adjust_cfa_offset (-80)
++ ldp x8, x9, [sp], #(80+8*16)
++ cfi_adjust_cfa_offset (-(80+8*16))
+
+ ldp ip1, lr, [sp], #16
+ cfi_adjust_cfa_offset (-16)
+Index: ports/sysdeps/aarch64/soft-fp/sfp-machine.h
+===================================================================
+--- a/ports/sysdeps/aarch64/soft-fp/sfp-machine.h (révision 24653)
++++ b/ports/sysdeps/aarch64/soft-fp/sfp-machine.h (révision 25477)
+@@ -47,7 +47,7 @@
+
+ #define _FP_DECL_EX fpu_control_t _fcw
+
+-#define FP_ROUNDMODE (_fcw & 0x3)
++#define FP_ROUNDMODE (_fcw & _FPU_FPCR_RM_MASK)
+
+ #define FP_RND_NEAREST FE_TONEAREST
+ #define FP_RND_ZERO FE_TOWARDZERO
+Index: ports/ChangeLog.alpha
+===================================================================
+--- a/ports/ChangeLog.alpha (révision 24653)
++++ b/ports/ChangeLog.alpha (révision 25477)
+@@ -1,3 +1,8 @@
++2013-11-16 Richard Henderson <rth@redhat.com>
++
++ * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Include a nop
++ before each signal thunk.
++
+ 2013-07-02 Richard Henderson <rth@redhat.com>
+
+ * sysdeps/alpha/fpu/libm-test-ulps: Update.
+Index: ports/ChangeLog.aarch64
+===================================================================
+--- a/ports/ChangeLog.aarch64 (révision 24653)
++++ b/ports/ChangeLog.aarch64 (révision 25477)
+@@ -1,3 +1,27 @@
++2014-01-20 Tom Tromey <tromey@redhat.com>
++
++ [BZ #16169]
++ * sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Add CFI
++ directives; Zero x29.
++
++2014-01-07 Marcus Shawcroft <marcus.shawcroft@linaro.org>
++
++ [BZ #16387]
++ * sysdeps/aarch64/fpu/fpu_control.h (_FPU_FPCR_RM_MASK): Define.
++ * sysdeps/aarch64/soft-fp/sfp-machine.h (FP_ROUNDMODE): Adjust
++ rounding mode mask.
++
++2014-01-07 Marcus Shawcroft <marcus.shawcroft@linaro.org>
++
++ * sysdeps/aarch64/dl-trampoline.S (_dl_runtime_resolve): Correct
++ cfi_adjust_cfa_offset offset.
++
++2013-12-18 Marcus Shawcroft <marcus.shawcroft@linaro.org>
++
++ [BZ #15128]
++ * sysdeps/aarch64/dl-trampoline.S (_dl_runtime_resolve): Save and
++ restore q0-q7.
++
+ 2013-07-26 Marcus Shawcroft <marcus.shawcroft@linaro.org>
+
+ * sysdeps/aarch64/Versions: New file.
+Index: malloc/malloc.c
+===================================================================
+--- a/malloc/malloc.c (révision 24653)
++++ b/malloc/malloc.c (révision 25477)
+@@ -3809,25 +3809,29 @@
+ unsigned int idx = fastbin_index(size);
+ fb = &fastbin (av, idx);
+
+- mchunkptr fd;
+- mchunkptr old = *fb;
++ /* Atomically link P to its fastbin: P->FD = *FB; *FB = P; */
++ mchunkptr old = *fb, old2;
+ unsigned int old_idx = ~0u;
+ do
+ {
+- /* Another simple check: make sure the top of the bin is not the
+- record we are going to add (i.e., double free). */
++ /* Check that the top of the bin is not the record we are going to add
++ (i.e., double free). */
+ if (__builtin_expect (old == p, 0))
+ {
+ errstr = "double free or corruption (fasttop)";
+ goto errout;
+ }
+- if (old != NULL)
++ /* Check that size of fastbin chunk at the top is the same as
++ size of the chunk that we are adding. We can dereference OLD
++ only if we have the lock, otherwise it might have already been
++ deallocated. See use of OLD_IDX below for the actual check. */
++ if (have_lock && old != NULL)
+ old_idx = fastbin_index(chunksize(old));
+- p->fd = fd = old;
++ p->fd = old2 = old;
+ }
+- while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd);
++ while ((old = catomic_compare_and_exchange_val_rel (fb, p, old2)) != old2);
+
+- if (fd != NULL && __builtin_expect (old_idx != idx, 0))
++ if (have_lock && old != NULL && __builtin_expect (old_idx != idx, 0))
+ {
+ errstr = "invalid fastbin entry (free)";
+ goto errout;
Reply to: