Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Feb 2004 18:06:35 +0100
From:      Maxime Henrion <mux@freebsd.org>
To:        Petri Helenius <pete@rommon.com>
Cc:        FreeBSD - net <freebsd-net@freebsd.org>
Subject:   Re: malloc (0)
Message-ID:  <20040221170635.GL35475@elvis.mu.org>
In-Reply-To: <40378E93.3010804@rommon.com>
References:  <40378E93.3010804@rommon.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Petri Helenius wrote:
> 
> I?m asking the net list because I came across this when browsing through 
> the networking / resolver code.
> 
> The question is if the code should check for zero value before calling 
> malloc or is malloc(0) legal if the pointer is never used?
> 
> I came across this when using dmalloc library and it started complaining 
> about zero sized allocations from get_addrselectpolicy.

In C99, malloc(0) is legal.  From n869.txt :

%%
If the size of the space requested is zero, the behavior is
implementation-defined: either a  null pointer  is returned,
or the behavior is as if the size were some nonzero value,
except that the returned  pointer  shall not  be  used  to
access an object.
%%

As a side note, free(NULL) is also legal in C99.

Cheers,
Maxime



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040221170635.GL35475>