summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Mejia <amejia004@gmail.com>2013-01-26 12:00:38 -0500
committerAndres Mejia <amejia004@gmail.com>2013-01-26 12:00:38 -0500
commitf2bd4d81617b4df86c388b8f4377cc0333676571 (patch)
treea4eafde870ea532b73b08d92387a6e950fbf855c
parent4b10f04c5c7930d0e68641677edeca3392518e16 (diff)
downloadlibarchive-f2bd4d81617b4df86c388b8f4377cc0333676571.tar.gz
Fix check for EOF in RAR format reader.
-rw-r--r--libarchive/archive_read_support_format_rar.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libarchive/archive_read_support_format_rar.c b/libarchive/archive_read_support_format_rar.c
index 54f2f5f2..4982c753 100644
--- a/libarchive/archive_read_support_format_rar.c
+++ b/libarchive/archive_read_support_format_rar.c
@@ -944,10 +944,12 @@ archive_read_format_rar_read_data(struct archive_read *a, const void **buff,
rar->bytes_unconsumed = 0;
}
- if (rar->entry_eof) {
+ if (rar->entry_eof || rar->offset_seek >= rar->unp_size) {
*buff = NULL;
*size = 0;
*offset = rar->offset;
+ if (*offset < rar->unp_size)
+ *offset = rar->unp_size;
return (ARCHIVE_EOF);
}