summaryrefslogtreecommitdiff
path: root/archivers/libarchive/files/libarchive/archive_read_support_compression_program.c
diff options
context:
space:
mode:
authorjoerg <joerg@pkgsrc.org>2007-08-13 18:17:26 +0000
committerjoerg <joerg@pkgsrc.org>2007-08-13 18:17:26 +0000
commitd3fa82849b8416e2be7cf1cc8c0a19eb6aa6104a (patch)
treef4878bf66b1174b1d7f6185faa6e3e3ed15616f8 /archivers/libarchive/files/libarchive/archive_read_support_compression_program.c
parent3429a59e5231c735e57888d50377d400cbf42a96 (diff)
downloadpkgsrc-d3fa82849b8416e2be7cf1cc8c0a19eb6aa6104a.tar.gz
Update in-tree libarchive to 2.2.6. This merges the local changes
and some bugfixes from FreeBSD.
Diffstat (limited to 'archivers/libarchive/files/libarchive/archive_read_support_compression_program.c')
-rw-r--r--archivers/libarchive/files/libarchive/archive_read_support_compression_program.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/archivers/libarchive/files/libarchive/archive_read_support_compression_program.c b/archivers/libarchive/files/libarchive/archive_read_support_compression_program.c
index 6815a3bd8b1..58b4bbddf0b 100644
--- a/archivers/libarchive/files/libarchive/archive_read_support_compression_program.c
+++ b/archivers/libarchive/files/libarchive/archive_read_support_compression_program.c
@@ -24,7 +24,7 @@
*/
#include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_compression_program.c,v 1.1 2007/05/29 01:00:19 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_compression_program.c,v 1.2 2007/07/20 01:28:50 kientzle Exp $");
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
@@ -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);