From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M9zts-0000Dw-H1 for qemu-devel@nongnu.org; Fri, 29 May 2009 07:05:24 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M9ztp-0000CP-0n for qemu-devel@nongnu.org; Fri, 29 May 2009 07:05:23 -0400 Received: from [199.232.76.173] (port=44106 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M9zto-0000CF-KF for qemu-devel@nongnu.org; Fri, 29 May 2009 07:05:20 -0400 Received: from fe01x03-cgp.akado.ru ([77.232.31.164]:60300 helo=akado.ru) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M9zVa-0005OJ-Bh for qemu-devel@nongnu.org; Fri, 29 May 2009 06:40:19 -0400 Date: Fri, 29 May 2009 14:40:16 +0400 (MSD) From: malc Subject: Re: [Qemu-devel] [PATCH] use qemu_malloc and friends consistently In-Reply-To: <4A1FBA45.80902@redhat.com> Message-ID: References: <200905290758.11551.jcd@tribudubois.net> <4A1F9FFE.3030100@redhat.com> <4A1FA573.4010602@codemonkey.ws> <4A1FB37E.5040602@redhat.com> <4A1FBA45.80902@redhat.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Paul Brook , qemu-devel@nongnu.org, Jean-Christophe Dubois On Fri, 29 May 2009, Kevin Wolf wrote: > malc schrieb: > > On Fri, 29 May 2009, Kevin Wolf wrote: > > > >> malc schrieb: > >>>> Putting the abort() in there is going to introduce a ton of subtle bugs, > >>>> I vote for changing qemu_malloc() to have a sane behavior. > >>> And those will be caught, given one a chance to analyze things, unlike > >>> head in the sand approach of hoping things would just work. > >>> > >>> After doing some research, after the aforementioned lengthy discussion, > >>> the only free OS that straight-forwardly described what it does was > >>> OpenBSD: > >>> > >>> http://www.openbsd.org/cgi-bin/man.cgi?query=malloc&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html > >>> > >>> P.S. So far the abort that went into qemu_malloc caught one usage of zero > >>> allocation (once again coming from qcow2). > >> Zero allocation isn't a bug per se. Checking for NULL or dereferencing > >> is. Any value that can be freed, be it NULL or anything else, was > >> perfectly fine here without the abort() patch. So it actually was one of > >> the subtle bugs Anthony mentioned which are introduced by the abort(). > > > > And once again, the code would have aborted on AIX with our without abort > > patch. The reason for abort is to identify and reason about all the call > > sites that do that. > > Why would it have aborted? If AIX aborts on malloc(0), its malloc is > seriously broken. But as I have understood from previous discussion, AIX > just returns NULL. Would have been okay for this code. Because of oom_check in qemu_malloc. -- mailto:av1474@comtv.ru