Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250619130449.GF1827@brightrain.aerifal.cx>
Date: Thu, 19 Jun 2025 09:04:51 -0400
From: Rich Felker <dalias@...c.org>
To: Alejandro Colomar <alx@...nel.org>
Cc: Vincent Lefevre <vincent@...c17.net>, linux-man@...r.kernel.org,
	musl@...ts.openwall.com, libc-alpha@...rceware.org,
	Paul Eggert <eggert@...ucla.edu>, Bruno Haible <bruno@...sp.org>,
	bug-gnulib@....org
Subject: Re: malloc.3: Clarify realloc(3) standards conformance

On Thu, Jun 19, 2025 at 02:53:45PM +0200, Alejandro Colomar wrote:
> Hi Vincent,
> 
> On Thu, Jun 19, 2025 at 02:36:13PM +0200, Vincent Lefevre wrote:
> > On 2025-06-19 12:54:52 +0200, Alejandro Colomar wrote:
> > > +BUGS
> > > +       Programmers would naturally expect that realloc(p, n) is consis‐
> > > +       tent with free(p) and malloc(n).  This is not explicitly re‐
> > > +       quired by POSIX.1‐2024, but all conforming implementations are
> > > +       consistent with that.
> > > +
> > > +       The glibc implementation of realloc() is not consistent with
> > > +       that, and as a consequence, it is dangerous to call
> > > +       realloc(p, 0) in glibc.
> > > +
> > > +       A trivial workaround for glibc is calling it as
> > > +       realloc(p, n?:1).
> > 
> > n?:1 is a GNU extension:
> > 
> > warning: ISO C forbids omitting the middle term of a ‘?:’ expression [-Wpedantic]
> > 
> > with gcc -pedantic -std=c23, and such code should not be given in
> > examples (as a workaround should still be valid for portable code).
> 
> Hmmm, I guess I can write it as n?n:1.
> 
> I'll write a proposal to standardize ?: in ISO C too.

That still doesn't make it appropriate to recommend in a man page for
people who will be writing code mostly to non bleeding edge (some even
C89) versions of the standard.

Examples and proscriptions should be minimally fancy, not using new or
clever things unnecessarily in ways that could break or just not
immediately be understood by the reader.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.