diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2002-06-11 21:19:41 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2002-06-11 21:19:41 +0000 |
commit | 6af59d0d232e33b2be61a6dc96e7918993dd28d5 (patch) | |
tree | 7b2b6409a0b71124ac88ef30636e23bc89dc0958 | |
parent | 3ec9b390db1a6d1264c32dfae8db53f208c26397 (diff) |
Revert Erik's patch to vasprintf and fix the real issue.
The writer for the stream returned by open_memstream was supposed to
keep the buffer nul-terminated. I apparently left out a statement.
-rw-r--r-- | libc/stdio/printf.c | 1 | ||||
-rw-r--r-- | libc/stdio/stdio.c | 1 |
2 files changed, 1 insertions, 1 deletions
diff --git a/libc/stdio/printf.c b/libc/stdio/printf.c index e311a4f87..92b5b5956 100644 --- a/libc/stdio/printf.c +++ b/libc/stdio/printf.c @@ -1451,7 +1451,6 @@ int vasprintf(char **__restrict buf, const char * __restrict format, return -1; } rv = vfprintf(f, format, arg); - if (rv >= 0) fputc('\0', f); fclose(f); if (rv < 0) { free(*buf); diff --git a/libc/stdio/stdio.c b/libc/stdio/stdio.c index 60d4fe73b..1462874f0 100644 --- a/libc/stdio/stdio.c +++ b/libc/stdio/stdio.c @@ -643,6 +643,7 @@ static ssize_t oms_write(void *cookie, const char *buf, size_t bufsize) if (COOKIE->pos > COOKIE->eof) { *COOKIE->sizeloc = COOKIE->eof = COOKIE->pos; + COOKIE->buf[COOKIE->eof] = 0; /* Need to nul-terminate. */ } return bufsize; |