summaryrefslogtreecommitdiff
path: root/archival/libarchive/open_transformer.c
diff options
context:
space:
mode:
authorDenys Vlasenko2014-12-07 00:49:55 +0100
committerDenys Vlasenko2014-12-07 00:49:55 +0100
commitcfcd2399b20998a374ad52a5fac353f77e6ec0f6 (patch)
tree97f02e7fb42a1c346e9a3d1a22cf12fc77321118 /archival/libarchive/open_transformer.c
parentb4c11c139717729b8257ee9382d4e5ed713d4dde (diff)
downloadbusybox-cfcd2399b20998a374ad52a5fac353f77e6ec0f6.zip
busybox-cfcd2399b20998a374ad52a5fac353f77e6ec0f6.tar.gz
make xmalloc_open_zipped_read_close result NUL terminated
Compat with xmalloc_open_read_close Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive/open_transformer.c')
-rw-r--r--archival/libarchive/open_transformer.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/archival/libarchive/open_transformer.c b/archival/libarchive/open_transformer.c
index 9d762a8..ab6aa3a 100644
--- a/archival/libarchive/open_transformer.c
+++ b/archival/libarchive/open_transformer.c
@@ -43,8 +43,9 @@ ssize_t FAST_FUNC transformer_write(transformer_state_t *xstate, const void *buf
nwrote = -1;
goto ret;
}
- xstate->mem_output_buf = xrealloc(xstate->mem_output_buf, size);
+ xstate->mem_output_buf = xrealloc(xstate->mem_output_buf, size + 1);
memcpy(xstate->mem_output_buf + pos, buf, bufsize);
+ xstate->mem_output_buf[size] = '\0';
nwrote = bufsize;
} else {
nwrote = full_write(xstate->dst_fd, buf, bufsize);