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 + + * 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 * 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"); } }