From 73f88f106795e5f7b373606abcbe1d3f91bc2a24 Mon Sep 17 00:00:00 2001 From: Michihiro NAKAJIMA Date: Sat, 5 Sep 2009 21:36:23 -0400 Subject: [PATCH] Fix my silly bug; I didn't consider that a uncompressed file size was just 1 << log2_bs. SVN-Revision: 1426 --- libarchive/archive_read_support_format_iso9660.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libarchive/archive_read_support_format_iso9660.c b/libarchive/archive_read_support_format_iso9660.c index 57f51793e..287e15d82 100644 --- a/libarchive/archive_read_support_format_iso9660.c +++ b/libarchive/archive_read_support_format_iso9660.c @@ -763,8 +763,10 @@ zisofs_read_data(struct archive_read *a, size_t ceil, xsize; /* Allocate block pointers buffer. */ - ceil = zisofs->pz_uncompressed_size >> zisofs->pz_log2_bs; - xsize = (ceil + 1 + 1) * 4; + ceil = (zisofs->pz_uncompressed_size + + (1UL << zisofs->pz_log2_bs) - 1) + >> zisofs->pz_log2_bs; + xsize = (ceil + 1) * 4; if (zisofs->block_pointers_alloc < xsize) { size_t alloc; -- 2.47.3