aboutsummaryrefslogtreecommitdiff
path: root/bin/tar2sqfs/src/process_tarball.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/tar2sqfs/src/process_tarball.c')
-rw-r--r--bin/tar2sqfs/src/process_tarball.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/bin/tar2sqfs/src/process_tarball.c b/bin/tar2sqfs/src/process_tarball.c
index 9ad7d9a..91572ec 100644
--- a/bin/tar2sqfs/src/process_tarball.c
+++ b/bin/tar2sqfs/src/process_tarball.c
@@ -148,16 +148,10 @@ static int set_root_attribs(sqfs_writer_t *sqfs, dir_iterator_t *it,
return 0;
}
-int process_tarball(istream_t *input_file, sqfs_writer_t *sqfs)
+int process_tarball(dir_iterator_t *it, sqfs_writer_t *sqfs)
{
- dir_iterator_t *it = tar_open_stream(input_file);
size_t rootlen = root_becomes == NULL ? 0 : strlen(root_becomes);
- if (it == NULL) {
- fputs("Creating tar stream: out-of-memory\n", stderr);
- return -1;
- }
-
for (;;) {
bool skip = false, is_root = false, is_prefixed = true;
dir_entry_t *ent = NULL;
@@ -168,7 +162,7 @@ int process_tarball(istream_t *input_file, sqfs_writer_t *sqfs)
if (ret > 0)
break;
if (ret < 0)
- goto fail;
+ return -1;
if (ent->mtime < 0)
ent->mtime = 0;
@@ -181,7 +175,7 @@ int process_tarball(istream_t *input_file, sqfs_writer_t *sqfs)
if (ret != 0) {
sqfs_perror(ent->name, "read link", ret);
free(ent);
- goto fail;
+ return -1;
}
}
@@ -235,12 +229,8 @@ int process_tarball(istream_t *input_file, sqfs_writer_t *sqfs)
free(ent);
free(link);
if (ret)
- goto fail;
+ return -1;
}
- sqfs_drop(it);
return 0;
-fail:
- sqfs_drop(it);
- return -1;
}