This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Sun, Aug 9, 2015 at 7:36 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> On 09 Aug 2015 15:28, Paul Pluzhnikov wrote:
>> +/* Check valid open mode. Only "(r|w|a)\+?" are valid. */
>
> this is not what the documentation states:
AFAICT, only "r", "w", "w+" and "a" are really used by __fmemopen, but
I overlooked the _IO_fopencookie part.
> https://www.gnu.org/software/libc/manual/html_node/String-Streams.html
> "The argument opentype is the same as in fopen"
> https://www.gnu.org/software/libc/manual/html_node/Opening-Streams.html
> there are various GNU extensions here, and the standard 'b' flag
Handling of 'b' in fmemopen has been removed:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fdb7d390dd0d96e4a8239c46f3aa64598b90842b
I also filed https://bugzilla.kernel.org/show_bug.cgi?id=102551 to
update man7.org description ...
> so the only thing we should check is whether the first byte is [rwa]. and it
> seems to me that _IO_fopencookie (which fmemopen tails into) already does just
> that for us.
Oh, I see. The bug is that _IO_fopencookie doesn't set errno.
In addition, if _IO_fopencookie fails, we leak memory.
Revised patch attached.
2015-08-09 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #18757]
* libio/fmemopen.c (__fmemopen): Set EINVAL and don't leak memory.
* libio/oldfmemopen.c (__old_fmemopen): Likewise.
* libio/test-fmemopen.c (do_bz18757): New test.
--
Paul Pluzhnikov
Attachment:
bz18757-20150809a.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |