aboutsummaryrefslogtreecommitdiff
path: root/lib/sqfs/meta_reader.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-07-16 21:02:58 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2019-07-16 22:48:00 +0200
commite3ef871d6a80d72db02c9ab1ef492e8f58c2ddeb (patch)
treeec28b205b651e83c795e1e264aacfe5bcb307bc4 /lib/sqfs/meta_reader.c
parentbfd876dbf151df164b4d87de20aec39b24f205f9 (diff)
cleanup: move error handling into read_retry
If read_retry fails to read the expected amount of data (EOF or otherwise), it is almost always an error. This commit renames read_retry to read_data and moves error handling into the function, making a lot of error handling code redundant. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib/sqfs/meta_reader.c')
-rw-r--r--lib/sqfs/meta_reader.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/lib/sqfs/meta_reader.c b/lib/sqfs/meta_reader.c
index e9b599f..c85d063 100644
--- a/lib/sqfs/meta_reader.c
+++ b/lib/sqfs/meta_reader.c
@@ -71,12 +71,8 @@ int meta_reader_seek(meta_reader_t *m, uint64_t block_start, size_t offset)
return -1;
}
- ret = read_retry(m->fd, &header, 2);
- if (ret < 0)
- goto fail_rd;
-
- if ((size_t)ret < 2)
- goto fail_trunc;
+ if (read_data("reading meta data header", m->fd, &header, 2))
+ return -1;
header = le16toh(header);
compressed = (header & 0x8000) == 0;
@@ -94,12 +90,8 @@ int meta_reader_seek(meta_reader_t *m, uint64_t block_start, size_t offset)
memset(m->data, 0, sizeof(m->data));
- ret = read_retry(m->fd, m->data, size);
- if (ret < 0)
- goto fail_rd;
-
- if ((size_t)ret < size)
- goto fail_trunc;
+ if (read_data("reading meta data block", m->fd, m->data, size))
+ return -1;
if (compressed) {
ret = m->cmp->do_block(m->cmp, m->data, size,
@@ -117,12 +109,6 @@ int meta_reader_seek(meta_reader_t *m, uint64_t block_start, size_t offset)
}
return 0;
-fail_trunc:
- fputs("reading meta data: unexpected end of file\n", stderr);
- return -1;
-fail_rd:
- perror("reading meta data");
- return -1;
}
int meta_reader_read(meta_reader_t *m, void *data, size_t size)