Date: Sat, 23 Nov 2002 20:16:35 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: "M. Warner Losh" <imp@bsdimp.com> Cc: marc@informatik.uni-bremen.de, <freebsd-current@FreeBSD.ORG> Subject: Re: malloc(0) broken? Message-ID: <20021123195334.W48944-100000@gamplex.bde.org> In-Reply-To: <20021122.193635.99607054.imp@bsdimp.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 22 Nov 2002, M. Warner Losh wrote: > In message: <79620000.1037978720@leeloo.intern.geht.de> > Marc Recht <marc@informatik.uni-bremen.de> writes: > : A malloc(0) returns always 0x800 on my system. This causes some third-party > : software to fail, because they expect malloc(0) to return NULL. Is this a > : bug or a feature? malloc(3) doesn't mention anything. > > malloc(0) is undefined. If people expect it to return NULL, that > software is not standard conforming. Er, malloc(0) is defined as returning either a null pointer or a pointer to 0 bytes of allocated space. Which one it chooses to return is implementation-defined, not undefined. C90 has a bogus requirement that the pointer for malloc(0) be "unique", whatever that means. C99 only requires that the objects pointed to by the results of malloc() be disjoint, and this is satisfied by FreeBSD's behaviour of returning the same magic pointer for each instance of malloc(0). Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021123195334.W48944-100000>