Hello Alex and Ahelenia, On 6/12/21 8:27 PM, Alejandro Colomar wrote: > From: наб <nabijaczleweli@xxxxxxxxxxxxxxxxxx> > > No implementation or spec requires *n to be 0 to allocate a new buffer: > * musl checks for !*lineptr > (and sets *n=0 for later allocations) > * glibc checks for !*lineptr || !*n > (but only because it allocates early) > * NetBSD checks for !*lineptr > (and sets *n=0 for later allocations) > (but specifies *n => mlen(*lineptr) >= *n as a precondition, > to which this appears to be an exception) > * FreeBSD checks for !*lineptr and sets *n=0 > (and specifies !*lineptr as sufficient) > * Lastly, POSIX.1-2017 specifies: > > If *n is non-zero, the application shall ensure that *lineptr > > either points to an object of size at least *n bytes, > > or is a null pointer. > > The new wording matches POSIX, even if it arrives at the point slightly > differently > > Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> Signed-off-by: Alejandro Colomar <alx.manpages@xxxxxxxxx> Thanks. Patch applied. Cheers, Michael > --- > man3/getline.3 | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/man3/getline.3 b/man3/getline.3 > index a32d7e770..6641ecc35 100644 > --- a/man3/getline.3 > +++ b/man3/getline.3 > @@ -59,9 +59,7 @@ one was found. > .PP > If > .I "*lineptr" > -is set to NULL and > -.I *n > -is set 0 before the call, then > +is set to NULL before the call, then > .BR getline () > will allocate a buffer for storing the line. > This buffer should be freed by the user program > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/