summaryrefslogtreecommitdiff
path: root/libarchive/archive_write_add_filter_program.c
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2020-04-25 13:56:12 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2020-04-25 20:11:59 +0100
commit4626d75d3790f107c3ae5f7aaafd0147fda5c87f (patch)
tree47f7a7e5032c0553150beb0e80e7fe4c53e71514 /libarchive/archive_write_add_filter_program.c
parentdf072ed4ce4256a60f4951eaaf6b89733e394eed (diff)
downloadlibarchive-4626d75d3790f107c3ae5f7aaafd0147fda5c87f.tar.gz
Change __archive_create_child() signature
Change the function to return an int - ARCHIVE_OK or ARCHIVE_FAILED, taking the child as an output argument. This will allow us to simplify the existing code and have move platform specifics in the platform files - posix and windows Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Diffstat (limited to 'libarchive/archive_write_add_filter_program.c')
-rw-r--r--libarchive/archive_write_add_filter_program.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libarchive/archive_write_add_filter_program.c b/libarchive/archive_write_add_filter_program.c
index a4bc1d90..f64ae4a2 100644
--- a/libarchive/archive_write_add_filter_program.c
+++ b/libarchive/archive_write_add_filter_program.c
@@ -212,6 +212,7 @@ __archive_write_program_open(struct archive_write_filter *f,
struct archive_write_program_data *data, const char *cmd)
{
pid_t child;
+ int ret;
if (data->child_buf == NULL) {
data->child_buf_len = 65536;
@@ -225,9 +226,9 @@ __archive_write_program_open(struct archive_write_filter *f,
}
}
- child = __archive_create_child(cmd, &data->child_stdin,
- &data->child_stdout);
- if (child == -1) {
+ ret = __archive_create_child(cmd, &data->child_stdin,
+ &data->child_stdout, &child);
+ if (ret != ARCHIVE_OK) {
archive_set_error(f->archive, EINVAL,
"Can't launch external program: %s", cmd);
return (ARCHIVE_FATAL);