Re: [PATCH 1/3] getline.3: !*lineptr is sufficient

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/



[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux