[#7102] Ruby 1.3.4-990611 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990611 is out, check out:

20 messages 1999/06/11

[#7223] Ruby 1.3.4-990625 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990625 is out, check out:

14 messages 1999/06/25
[#7224] -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625) — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp> 1999/06/25

早坂@会津大学です。

[ruby-dev:7087] Re: [BUG] unpack('m')

From: 民斗 <tommy@...>
Date: 1999-06-08 01:44:47 UTC
List: ruby-dev #7087
民斗です。

[Subject: [ruby-dev:7083] Re: [BUG] unpack('m')]
[Date: Tue, 8 Jun 1999 10:23:22 +0900  From:WATANABE Hirofumi]

> :String#unpack('m') して生成された文字列を C レベルで操作すると末尾に
> :ゴミがついていることがあります。Ruby レベルでは問題ありません。
> :
> :# STR2CSTR() したものって、'\0' 終端されていると仮定して良いんですよね?

> 変換後の文字列の中に '\0' が含まれることもあるわけで,
> '\0' で終端させてもあまり意味がないような気がします.
> 特に 'm' や 'u' の場合は.
> やはり長さを意識して処理したほうがいいのではないでしょうか?

ん〜、ま、そりゃそうなんですけど、標準添付の kconv でも '\0' 終端を
仮定しているみたいですし…。

> それと変換後のバイト数分だけ rb_str_new してるので, 
> そのまま '\0' を書き込むと memory leak することもあります.
> ('=' の padding がないとき)

いえ、rb_str_new() は、指定されたバイト数+1 の領域を確保して、最後の
バイトに '\0' を書くようになってます。

だから、文字列の終端の '\0' を期待してもいいんだろうと思ってました。

--
民斗 <tommy@valley.ne.jp>

In This Thread