standards/62858: malloc(0) not C99 compliant

Poul-Henning Kamp phk at phk.freebsd.dk
Mon Mar 1 08:37:41 PST 2004


In message <20040301160022.GA13617 at VARK.homeunix.com>, David Schultz writes:
>On Mon, Mar 01, 2004, Poul-Henning Kamp wrote:
>> In message <xzpznb0iwm0.fsf at dwp.des.no>, Dag-Erling =?iso-8859-1?q?Sm=F8rgrav?=
>>  writes:
>> >Poul-Henning Kamp <phk at FreeBSD.org> writes:
>> >> This is a deliberate choice.  Handling zero-size pointers correctly
>> >> in malloc(3) would be a rather involved and is currently not high
>> >> on the todolist.  A good patch might change that.
>> >
>> >The standard does allow returning NULL, you know.
>> 
>> Yes, but unfortunately that broke more software than I cared for
>> arguing with authors about.
>
>Several other malloc implementations do this, including the one in
>Tru64.  But assuming that there really are lots of broken
>applications out there, what's wrong with simply converting
>malloc(0) calls to malloc(1) calls?

I want to make sure people who malloc(0) and then deref the pointer get
the core dump they need to debug their problem.

But lets turn this around, do you have evidence of code which breaks
with the current behaviour ?  Does the code also fail if you give
malloc the 'V' flag ?

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-standards mailing list