summaryrefslogtreecommitdiff
path: root/lib/libarchive/archive_read_support_compression_program.c
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@FreeBSD.org>2007-08-07 04:32:49 +0000
committerTim Kientzle <kientzle@FreeBSD.org>2007-08-07 04:32:49 +0000
commit7431304b994304a744203268ff88acbda94e8d0d (patch)
treeca7c40431fdaf0501c43fbf09ef8205f3ea1f884 /lib/libarchive/archive_read_support_compression_program.c
parent94b578b1719f8be560ba3247ebf33aa7f53564d0 (diff)
Notes
Diffstat (limited to 'lib/libarchive/archive_read_support_compression_program.c')
-rw-r--r--lib/libarchive/archive_read_support_compression_program.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libarchive/archive_read_support_compression_program.c b/lib/libarchive/archive_read_support_compression_program.c
index d40679769f9b..dfea568fee20 100644
--- a/lib/libarchive/archive_read_support_compression_program.c
+++ b/lib/libarchive/archive_read_support_compression_program.c
@@ -113,6 +113,7 @@ child_read(struct archive_read *a, char *buf, size_t buf_len)
{
struct archive_decompress_program *state = a->decompressor->data;
ssize_t ret, requested;
+ const void *child_buf;
if (state->child_stdout == -1)
return (-1);
@@ -138,8 +139,10 @@ restart_read:
return (-1);
if (state->child_in_buf_avail == 0) {
+ child_buf = state->child_in_buf;
ret = (a->client_reader)(&a->archive,
- a->client_data, (const void **)&state->child_in_buf);
+ a->client_data,&child_buf);
+ state->child_in_buf = (const char *)child_buf;
if (ret < 0) {
close(state->child_stdin);