Zero-length allocation with posix_memalign()

Fabian Keil freebsd-listen at fabiankeil.de
Mon Jul 6 18:26:19 UTC 2009


Jason Evans <jasone at FreeBSD.org> wrote:

> Fabian Keil wrote:
> > Rémi Denis-Courmont, one of the vlc developers, pointed out
> > that passing a zero size to posix_memalign() should actually
> > work, though:
> > 
> > | In principle, while useless, there is no reason why allocating an empty 
> > | picture should not be possible. posix_memalign() does support zero-length 
> > | allocation anyway:
> > | http://www.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html
> > | | If the size of the space requested is 0, the behavior is
> > | | implementation-defined; the value returned in memptr shall be either a
> > | | null pointer or a unique pointer.
> 
> Standards: So many to choose from.  This behavior for posix_memalign was 
> only defined as of the 2008 standard (see the Issue 7 notes for 
> posix_memalign):
> 
> https://www.opengroup.org/austin/interps/uploads/40/14543/AI-152.txt
> 
> Such requirements are unfortunate, because they induce a performance 
> penalty for every call, just so that programs can avoid proper handling 
> of edge cases in the rare situations for which such edge cases are a 
> real possibility.
> 
> I will add the pessimization to posix_memalign once the 8.0 freeze is 
> over.  It will be quite some time before this behavior becomes 
> ubiquitous, so in the meanwhile it's probably a good idea to modify vlc 
> to avoid such allocation requests.

Great, thanks.

I agree and will forward the vlc patch to the maintainer of
the FreeBSD port if getting it committed upstream fails.

Fabian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20090706/13df339a/signature.pgp


More information about the freebsd-hackers mailing list