manual: clarify buffer behavior in getline [BZ #5666]

If the user has requested automatic buffer creation, getline may create
it and not free things when an error occurs.  That means the user is
always responsible for calling free() regardless of the return value.

The current documentation does not explicitly cover this which leaves it
slightly ambiguous to the reader.  So clarify things.

URL: https://sourceware.org/bugzilla/show_bug.cgi?id=5666
This commit is contained in:
David Svoboda 2014-04-02 05:13:02 -04:00 committed by Mike Frysinger
parent fcccd51286
commit 1c21d115e3
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2014-04-03 David Svoboda <svoboda@cert.org>
[BZ #5666]
* manual/stdio.texi (Line-Oriented Input): Document buffer allocation
explicitly.
2014-04-03 Roland McGrath <roland@hack.frob.com>
* elf/dl-unmap-segments.h: New file.

View File

@ -1298,7 +1298,8 @@ back in @code{*@var{n}}.
If you set @code{*@var{lineptr}} to a null pointer, and @code{*@var{n}}
to zero, before the call, then @code{getline} allocates the initial
buffer for you by calling @code{malloc}.
buffer for you by calling @code{malloc}. This buffer remains allocated
even if @code{getline} encounters errors and is unable to read any bytes.
In either case, when @code{getline} returns, @code{*@var{lineptr}} is
a @code{char *} which points to the text of the line.