From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6636 invoked by alias); 27 Dec 2002 21:46:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 6615 invoked by uid 71); 27 Dec 2002 21:46:01 -0000 Resent-Date: 27 Dec 2002 21:46:01 -0000 Resent-Message-ID: <20021227214601.6614.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org, "Carl R. Witty" Resent-Reply-To: gcc-gnats@gcc.gnu.org, 140201@bugs.debian.org Received: (qmail 5166 invoked from network); 27 Dec 2002 21:37:28 -0000 Received: from unknown (HELO hirsch.in-berlin.de) (192.109.42.6) by 209.249.29.67 with SMTP; 27 Dec 2002 21:37:28 -0000 Received: from tango.net.local (mail@dsl-213-023-039-145.arcor-ip.net [213.23.39.145]) (authenticated bits=0) by hirsch.in-berlin.de (8.12.1/8.12.1/Debian -2) with ESMTP id gBRLbFXR016665 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NOT); Fri, 27 Dec 2002 22:37:15 +0100 Received: from doko by tango.net.local with local (Exim 4.12 #1 (Debian) [+araqnid]) id 18S2AM-0003Sr-00; Fri, 27 Dec 2002 22:37:14 +0100 Message-Id: Date: Fri, 27 Dec 2002 13:46:00 -0000 From: Matthias Klose Reply-To: 140201@bugs.debian.org To: gcc-gnats@gcc.gnu.org, debian-gcc@lists.debian.org X-Send-Pr-Version: 3.113 X-GNATS-Notify: "Carl R. Witty" Subject: libstdc++/9069: race condition in libstdc++3 (basic_string.tcc) X-SW-Source: 2002-12/txt/msg01320.txt.bz2 List-Id: >Number: 9069 >Category: libstdc++ >Synopsis: race condition in libstdc++3 (basic_string.tcc) >Confidential: no >Severity: non-critical >Priority: low >Responsible: unassigned >State: open >Class: change-request >Submitter-Id: net >Arrival-Date: Fri Dec 27 13:46:01 PST 2002 >Closed-Date: >Last-Modified: >Originator: "Carl R. Witty" >Release: 3.2.1 (Debian) (Debian unstable) >Organization: The Debian Project >Environment: System: Debian GNU/Linux (unstable) Architecture: i686 host: i386-linux Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,pascal,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm --enable-objc-gc i386-linux Thread model: posix gcc version 3.2.2 20021212 (Debian prerelease) >Description: [ Reported to the Debian BTS as report #140201. Please CC 140201@bugs.debian.org on replies. Log of report can be found at http://bugs.debian.org/140201 ] [implementation is the same as on the 3.2 branch] The function basic_string::_M_leak_hard() in basic_string.tcc is not thread-safe. The reference count is read with _M_is_shared() and then written with _M_set_leaked(), non-atomically. (This is only a bug if the string class is supposed to be thread-safe. I haven't found an explicit statement that it is, but most of the string operations are written to be thread-safe.) >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: