Skip to content
Snippets Groups Projects
Commit 171211c2 authored by Felix Fietkau's avatar Felix Fietkau
Browse files

uClibc: add a patch to reduce vasprintf allocation size (fixes #13024)


Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>

SVN-Revision: 40774
parent bb240b50
No related branches found
No related tags found
No related merge requests found
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.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
--- a/libc/stdio/vasprintf.c
+++ b/libc/stdio/vasprintf.c
@@ -39,6 +39,8 @@ int vasprintf(char **__restrict buf, con
if (rv < 0) {
free(*buf);
*buf = NULL;
+ } else {
+ *buf = realloc(*buf, rv + 1);
}
}
--- 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 **__restrict b
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. */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment