![]() |
|
Message-ID: <lhufrfl5jnl.fsf@oldenburg.str.redhat.com> Date: Fri, 27 Jun 2025 16:44:14 +0200 From: Florian Weimer <fweimer@...hat.com> To: Alejandro Colomar <alx@...nel.org> Cc: libc-alpha@...rceware.org, bug-gnulib@....org, musl@...ts.openwall.com, наб <nabijaczleweli@...ijaczleweli.xyz>, Douglas McIlroy <douglas.mcilroy@...tmouth.edu>, Paul Eggert <eggert@...ucla.edu>, Robert Seacord <rcseacord@...il.com>, Elliott Hughes <enh@...gle.com>, Bruno Haible <bruno@...sp.org>, JeanHeyd Meneide <phdofthehouse@...il.com>, Rich Felker <dalias@...c.org>, Adhemerval Zanella Netto <adhemerval.zanella@...aro.org>, Joseph Myers <josmyers@...hat.com>, Laurent Bercot <ska-dietlibc@...rnet.org>, Andreas Schwab <schwab@...e.de>, Thorsten Glaser <tg@...bsd.de>, Eric Blake <eblake@...hat.com>, Vincent Lefevre <vincent@...c17.net>, Mark Harris <mark.hsj@...il.com>, Collin Funk <collin.funk1@...il.com>, Wilco Dijkstra <Wilco.Dijkstra@....com>, DJ Delorie <dj@...hat.com>, Cristian Rodríguez <cristian@...riguez.im>, Siddhesh Poyarekar <siddhesh@...plt.org>, Sam James <sam@...too.org>, Mark Wielaard <mark@...mp.org>, "Maciej W. Rozycki" <macro@...hat.com>, Martin Uecker <ma.uecker@...il.com>, Christopher Bazley <chris.bazley.wg14@...il.com>, eskil@...ession.se, Daniel Krügler <daniel.kruegler@...glemail.com>, Kees Cook <keescook@...omium.org>, Valdis Klētnieks <valdis.kletnieks@...edu> Subject: Re: alx-0029r5 - Restore the traditional realloc(3) specification * Alejandro Colomar: >> If you frame your proposal in terms of aligning with traditional >> behavior, you are inviting a discussion what the traditional behavior >> is. But this doesn't really matter. >> >> I'm not sure if your changes to the calloc, reallocarray are sufficient >> text. I assume we want full symmetry of the arguments because the >> argument order in existing programs is not very consistent. This >> requires dropping the requirement that one of the arguments is an object >> size (which rules out zero as a valid argument value). > > No, that doesn't rule it out. C11 says this in 6.2.6.1p2: | Except for bit-fields, objects are composed of contiguous sequences of | one or more bytes, And in 7.22.3.2p2: | The calloc function allocates space for an array of nmemb objects, | each of whose size is size. I think this requires size to be positive: it denotes an object size, and that is at least 1 because zero-sized objects do not exist according to 6.2.6.1p2. If this is fixed in the current draft, that's fine. Failing with EINVAL for zero in one of the calloc arguments but not the other would be awkard and needlessly break applications. >> From an implementation perspective, we need clarification that the >> allocation functions (except aligned_alloc) may reduce the alignment of >> the returned pointer to a power of two greater or equal to the requested >> size, for allocation sizes that are less than the fundamental alignment. > > I think I shouldn't include that in my proposal, as it's not necessary, > and may hinder it's approval. Martin says it's already there. You just need to make sure it applies to all zero-sized allocations, including zero-member allocations of larger-than-fundamental-arlignment objects with calloc. Thanks, Florian
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.