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] | |
Greetings,
I believe we've reached a consensus in
https://sourceware.org/ml/libc-alpha/2015-02/msg00010.html -- using
mmap to allocate FILE buffers is really not a good idea.
Attached patch replaces mmap()s with calloc()s. Doing this revealed a
few cleanup bugs: wide stream and input-only buffers were not cleaned
up under some conditions.
Tested on Linux/x86_64 with no new failures.
2015-02-16 Paul Pluzhnikov <ppluzhnikov@google.com>
[BZ #16374]
* NEWS: mention 16374
* libio/filedoalloc.c (_IO_file_doallocate,
_IO_default_doallocate): Use calloc instead of ALLOC_BUF
(_IO_setb, _IO_default_finish): Use free instead of FREE_BUF
(_IO_default_finish): Likewise. Fix cleanup bugs.
(libc_freeres_fn): Clean up wide stream buffers.
* libio/libio.h (struct _IO_FILE_complete): Delete
_freeres_size, add _freeres_wbuf
* libio/libioP.h (ROUND_TO_PAGE, FREE_BUF, ALLOC_BUF,
ALLOC_WBUF): Delete
* libio/wfiledoalloc.c (_IO_wfile_doallocate): Use calloc
instead of ALLOC_WBUF
* libio/wgenops.c (_IO_wdefault_doallocate): Likewise
(_IO_wsetb, _IO_wdefault_finish): Use free instead of FREE_BUF
--
Paul Pluzhnikov
Attachment:
bz16734.patch5.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |