From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21633 invoked by alias); 2 Apr 2003 23:46:01 -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 21612 invoked by uid 71); 2 Apr 2003 23:46:01 -0000 Resent-Date: 2 Apr 2003 23:46:01 -0000 Resent-Message-ID: <20030402234601.21611.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 Resent-Reply-To: gcc-gnats@gcc.gnu.org, jaf@lcsaudio.com Received: (qmail 19953 invoked by uid 48); 2 Apr 2003 23:42:03 -0000 Message-Id: <20030402234203.19952.qmail@sources.redhat.com> Date: Wed, 02 Apr 2003 23:46:00 -0000 From: jaf@lcsaudio.com Reply-To: jaf@lcsaudio.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: c++/10300: array-new (nothrow) in templated inner class crashes on NULL return X-SW-Source: 2003-04/txt/msg00081.txt.bz2 List-Id: >Number: 10300 >Category: c++ >Synopsis: array-new (nothrow) in templated inner class crashes on NULL return >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Apr 02 23:46:01 UTC 2003 >Closed-Date: >Last-Modified: >Originator: jaf@lcsaudio.com >Release: unknown-1.0 >Organization: >Environment: Red Hat Linux 8 on a Dual P3/650 256MB >Description: The attached program demonstrates a bug in gcc. It simulates an out-of-memory condition by overloading the new (nothrow) operators to return NULL, and then tries to allocate an array of items that are the inner class of a template. new (nothrow) should return NULL, but instead, the program segfaults. The fault occurs after the custom new operator returns NULL, but before the new (nothrow) command completes. >How-To-Repeat: g++ membug.zpp ./membug (should segfault after several lines of output) >Fix: This program should leak a bit of memory, but not segfault. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/x-gzip; name="membug.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="membug.tar.gz" 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