diff options
author | Andres Mejia <amejia004@gmail.com> | 2013-01-26 12:00:38 -0500 |
---|---|---|
committer | Andres Mejia <amejia004@gmail.com> | 2013-01-26 12:00:38 -0500 |
commit | f2bd4d81617b4df86c388b8f4377cc0333676571 (patch) | |
tree | a4eafde870ea532b73b08d92387a6e950fbf855c | |
parent | 4b10f04c5c7930d0e68641677edeca3392518e16 (diff) | |
download | libarchive-f2bd4d81617b4df86c388b8f4377cc0333676571.tar.gz |
Fix check for EOF in RAR format reader.
-rw-r--r-- | libarchive/archive_read_support_format_rar.c | 4 |
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); } |