[#24112] ruby/tk crashes on bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。原因を追求してたのですが、力尽きました。

19 messages 2004/08/18
[#24127] Re: ruby/tk crashes on bcc32 — Hidetoshi NAGAI <nagai@...> 2004/08/19

永井@知能.九工大です.

[#24131] Re: ruby/tk crashes on bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/08/19

山本です。

[#24135] Re: ruby/tk crashes on bcc32 — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2004/08/19

山本です。試行錯誤の結果、これで落ちなくなりました。

[ruby-dev:24065] Re: Zlib::GzipReader#ungetc causes crc error

From: Tanaka Akira <akr@...17n.org>
Date: 2004-08-12 07:46:48 UTC
List: ruby-dev #24065
In article <20040812.143341.77225238.katsu@blue.sky.or.jp>,
  UENO Katsuhiro <unnie@blue.sky.or.jp> writes:

> Index: ext/zlib/zlib.c
> ===================================================================
> RCS file: /src/ruby/ext/zlib/zlib.c,v
> retrieving revision 1.14
> diff -w -u -r1.14 zlib.c
> --- ext/zlib/zlib.c	6 Aug 2004 16:00:41 -0000	1.14
> +++ ext/zlib/zlib.c	12 Aug 2004 05:13:27 -0000
> @@ -2096,6 +2096,7 @@
>      else {
>  	gz->crc = crc32(gz->crc, RSTRING(dst)->ptr + gz->ungetc,
>  			RSTRING(dst)->len - gz->ungetc);
> +	gz->ungetc = 0;
>      }
>
>      OBJ_TAINT(dst);  /* for safe */
> @@ -2125,6 +2126,7 @@
>      else {
>  	gz->crc = crc32(gz->crc, RSTRING(dst)->ptr + gz->ungetc,
>  			RSTRING(dst)->len - gz->ungetc);
> +	gz->ungetc = 0;
>      }
>
>      OBJ_TAINT(dst);  /* for safe */

[ruby-dev:24060] の例はこれで直るのですが、次のような例もあるようです。

% echo a |gzip |./ruby -rzlib -e '
io = Zlib::GzipReader.new(STDIN)
$/ = ""
io.ungetc "\n"
io.gets
io.read
io.close'
-e:6:in `read': invalid compressed data -- crc error (Zlib::GzipFile::CRCError)
        from -e:6
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread