From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29230 invoked by alias); 7 May 2006 22:19:30 -0000 Received: (qmail 29152 invoked by uid 48); 7 May 2006 22:19:24 -0000 Date: Sun, 07 May 2006 22:19:00 -0000 Message-ID: <20060507221924.29151.qmail@sourceware.org> From: "batneil at thebatcave dot org dot uk" To: glibc-bugs@sources.redhat.com In-Reply-To: <20060507135630.2644.batneil@thebatcave.org.uk> References: <20060507135630.2644.batneil@thebatcave.org.uk> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug nptl/2644] Race condition during unwind code after thread cancellation X-Bugzilla-Reason: CC Mailing-List: contact glibc-bugs-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sourceware.org X-SW-Source: 2006-05/txt/msg00058.txt.bz2 List-Id: ------- Additional Comments From batneil at thebatcave dot org dot uk 2006-05-07 22:19 ------- For completeness, here's the compiler output for the new patched version: 0000c360 <_Unwind_ForcedUnwind>: [...] c377: 8b 93 ac 21 00 00 mov 0x21ac(%ebx),%edx c37d: 89 7d fc mov %edi,0xfffffffc(%ebp) c380: 85 d2 test %edx,%edx c382: 74 23 je c3a7 <_Unwind_ForcedUnwind+0x47> c384: 8b 75 10 mov 0x10(%ebp),%esi c387: 8b 4d 0c mov 0xc(%ebp),%ecx c38a: 8b 45 08 mov 0x8(%ebp),%eax c38d: 89 74 24 08 mov %esi,0x8(%esp) c391: 89 4c 24 04 mov %ecx,0x4(%esp) c395: 89 04 24 mov %eax,(%esp) c398: ff d2 call *%edx [...] c3a6: c3 ret c3a7: 8b 83 b0 21 00 00 mov 0x21b0(%ebx),%eax c3ad: 85 c0 test %eax,%eax c3af: 74 08 je c3b9 <_Unwind_ForcedUnwind+0x59> c3b1: 8b 93 ac 21 00 00 mov 0x21ac(%ebx),%edx c3b7: eb cb jmp c384 <_Unwind_ForcedUnwind+0x24> The common case is now just as it was before, but in the case where we have to do the initialisation the value is correctly loaded at c3b1. I haven't finished testing with this version, but it looks good so far. -- http://sourceware.org/bugzilla/show_bug.cgi?id=2644 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.