mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Rich Felker <dalias@aerifal.cx>
To: musl@lists.openwall.com
Subject: Re: malloc(0) behaviour
Date: Mon, 14 Jan 2013 13:05:33 -0500	[thread overview]
Message-ID: <20130114180533.GP20323@brightrain.aerifal.cx> (raw)
In-Reply-To: <F536F9AD-D97C-42FD-B453-02CC232845AF@palsenberg.com>

On Mon, Jan 14, 2013 at 06:17:47PM +0100, Igmar Palsenberg wrote:
> Hi,
> 
> Is there a (good) reason for Musl to follow glibc's malloc(0)
> behaviour ? Musl returns a valid pointer, which is fine according to
> the standard, but returning NULL is also fine.

Yes, there are many good reasons. The most obvious (but stupid) one is
that a huge number of programs will "replace" malloc with one where
malloc(0) returns something other than a null pointer if the system's
malloc(0) returns null, and this adds both bloat and risk of
bugs/breakage from the replacement. But there are other much more
fundamental reasons too. Basically they all come down to interactions
between the requirements of malloc and realloc, and the fact that
returning a null pointer from realloc means failure (and thus that the
original object was not freed). I don't want to try to remember all
the details at the moment (they're enough to make your brain hurt..)
but here are some links to get you started on the issue:

http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_400.htm
http://austingroupbugs.net/view.php?id=400
http://sourceware.org/bugzilla/show_bug.cgi?id=12547

Rich


  reply	other threads:[~2013-01-14 18:05 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-14 17:17 Igmar Palsenberg
2013-01-14 18:05 ` Rich Felker [this message]
2013-01-14 22:22   ` Strake
2013-01-14 23:05     ` Rich Felker
2013-01-15  8:32     ` Igmar Palsenberg
2013-01-15 12:53       ` Rob Landley
2013-01-15 22:18         ` Igmar Palsenberg
2013-01-15  8:31   ` Igmar Palsenberg
2013-01-15 11:06     ` Szabolcs Nagy
2013-01-15 12:33       ` Igmar Palsenberg
2013-01-15 13:48         ` Rich Felker
2013-01-15 22:28           ` Igmar Palsenberg
2013-01-15 23:22             ` Rob
2013-01-16  7:46               ` Igmar Palsenberg
2013-01-15 13:46       ` Rich Felker
2013-01-15 12:52     ` Rob Landley
2013-01-14 23:37 ` Rob Landley
2013-01-15  0:24   ` Rich Felker
2013-01-15 12:17     ` Rob Landley
2013-01-15  9:01   ` Igmar Palsenberg
2013-01-15 12:58     ` Rob Landley
2013-01-15 14:54       ` dladdr() pierre
2013-01-15 18:48         ` dladdr() Rich Felker
2013-01-16 11:00           ` dladdr() pierre
2013-01-16 12:51             ` dladdr() Szabolcs Nagy
2013-01-16 14:24               ` dladdr() musl
2013-01-16 15:20                 ` dladdr() pierre
2013-01-16 16:49                 ` dladdr() Rich Felker
2013-01-16 17:42                   ` dladdr() musl
2013-01-21  2:03                     ` dladdr() Rich Felker
2013-01-21  6:58                       ` dladdr() pierre
2013-01-21 18:35                         ` dladdr() Rich Felker
2013-01-22  6:27                           ` dladdr() pierre
2013-01-22 13:07                             ` dladdr() Szabolcs Nagy
2013-01-22 13:40                               ` dladdr() pierre
2013-01-22 13:51                                 ` dladdr() Rich Felker
2013-01-22 14:59                                   ` dladdr() pierre
2013-01-22 16:11                                     ` dladdr() Szabolcs Nagy
2013-01-22 23:43                                       ` dladdr() Rich Felker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130114180533.GP20323@brightrain.aerifal.cx \
    --to=dalias@aerifal.cx \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).