[#41916] Proposal: Bitmap Marking GC — Narihiro Nakamura <authornari@...>

Hi.

18 messages 2012/01/05

[#41941] [ruby-trunk - Bug #5851][Open] make check fails when compiling with GCC 4.7 - *** longjmp causes uninitialized stack frame *** — Vit Ondruch <v.ondruch@...>

12 messages 2012/01/06

[#41979] [ruby-trunk - Bug #5865][Open] Exception#== should return false if the classes differ — Hiro Asari <asari.ruby@...>

10 messages 2012/01/08

[#42003] [ruby-trunk - Bug #5871][Open] regexp \W matches some word characters when inside a case-insensitive character class — Gareth Adams <gareth@...>

14 messages 2012/01/09

[#42016] [ruby-trunk - Feature #5873][Open] Adopt FFI over DL — Heesob Park <phasis@...>

15 messages 2012/01/10

[#42149] [ruby-trunk - Feature #5899][Open] chaining comparsions. — Ondrej Bilka <neleai@...>

12 messages 2012/01/16

[#42164] [ruby-trunk - Feature #5903][Open] Optimize st_table (take 2) — Yura Sokolov <funny.falcon@...>

18 messages 2012/01/17

[ruby-core:42231] [ruby-trunk - Bug #5929][Open] Zlib::Inflate#set_dictionary does not work with short input

From: Eric Hodel <drbrain@...7.net>
Date: 2012-01-26 02:59:19 UTC
List: ruby-core #42231
Issue #5929 has been reported by Eric Hodel.

----------------------------------------
Bug #5929: Zlib::Inflate#set_dictionary does not work with short input
https://bugs.ruby-lang.org/issues/5929

Author: Eric Hodel
Status: Open
Priority: Normal
Assignee: 
Category: ext
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-01-26 trunk 34377) [x86_64-darwin11.2.0]


=begin
If a deflate stream requires a dictionary and the block of data is short it is impossible to decompress the data without modifying the returned bytes.  Upon receiving a Zlib::NeedDict exception the documentation for Zlib::Inflate#inflate states:

  Set the dictionary by Zlib::Inflate#set_dictionary and then
  call this method again with an empty string

Calling inflate with an empty string does not decompress any further bytes due to (({do_inflate()})) ignoring zero-byte strings to avoid a Z_BUF_ERROR.

The attached patch alters the (({do_inflate()})) to inflate more data when either more data was provided by the user or (({z->stream.avail_in})) is nonzero.

Reading (({zstream_run()})) it appears that (({z->stream.avail_in})) will be set to zero upon consuming a chunk of data, so providing an empty string in the middle of a non-dictionary stream will be OK, but please check it.
=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next