aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/zlib/zlib.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8e0fc1361f..79a0790867 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Jan 14 13:38:58 2011 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * ext/zlib/zlib.c (gzfile_check_footer): ISIZE (Input SIZE) in
+ gzip's header is the size of uncompressed input data modulo 2^32.
+ [ruby-core:34481] http://www.ietf.org/rfc/rfc1952.txt
+
Fri Jan 14 11:36:25 2011 NAKAMURA Usaku <usa@ruby-lang.org>
* configure.in, win32/Makefile.sub (RUNRUBY): require path should
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c
index 40a2c79e60..36fc29fa18 100644
--- a/ext/zlib/zlib.c
+++ b/ext/zlib/zlib.c
@@ -2169,7 +2169,7 @@ gzfile_check_footer(struct gzfile *gz)
if (gz->crc != crc) {
rb_raise(cCRCError, "invalid compressed data -- crc error");
}
- if (gz->z.stream.total_out != length) {
+ if ((int32_t)gz->z.stream.total_out != length) {
rb_raise(cLengthError, "invalid compressed data -- length error");
}
}