diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2015-12-06 18:05:32 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-12-09 07:50:59 +0100 |
commit | 5a233790c38323afaed5ede000e1ef1234755ad7 (patch) | |
tree | f674e420e0871491e1dad7bf584226fffdfaf5d1 /libc/stdio/open_memstream.c | |
parent | b6af57f98021bc3b1b8183cfb501a5c45293cdd7 (diff) |
Reduce the initial buffer size for open_memstream
Reduce the initial buffer size for open_memstream (used by vasprintf),
as most strings are usually smaller than that.
Realloc the buffer after finishing the string to further reduce size.
Problem appears in case of UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y,
see http://dev.openwrt.org/ticket/13024
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Signed-off-by: Waldemar Brodkorb <wbx@uclibc-ng.org>
Diffstat (limited to 'libc/stdio/open_memstream.c')
-rw-r--r-- | libc/stdio/open_memstream.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libc/stdio/open_memstream.c b/libc/stdio/open_memstream.c index 5400fe441..17ef191cb 100644 --- a/libc/stdio/open_memstream.c +++ b/libc/stdio/open_memstream.c @@ -17,6 +17,8 @@ #define COOKIE ((__oms_cookie *) cookie) +#define MEMSTREAM_BUFSIZ 256 + typedef struct { char *buf; size_t len; @@ -134,7 +136,7 @@ FILE *open_memstream(char **bufloc, size_t *sizeloc) register FILE *fp; if ((cookie = malloc(sizeof(__oms_cookie))) != NULL) { - if ((cookie->buf = malloc(cookie->len = BUFSIZ)) == NULL) { + if ((cookie->buf = malloc(cookie->len = MEMSTREAM_BUFSIZ)) == NULL) { goto EXIT_cookie; } *cookie->buf = 0; /* Set nul terminator for buffer. */ |