まつもと ゆきひろです
In message "[ruby-dev:21621] Failure on test/digest/test_digest.rb"
on 03/10/15, "U.Nakamura" <usa / osb.att.ne.jp> writes:
|test/digest/test_digest.rbを実行すると、test_eqで失敗するこ
|とがあることを(なかださんが)発見しました。
|追ってみたところ、MD5_EqualやSHA1_Equal内で、bufferをmemcmp
|している部分で不一致と判定されていました。
|
|bufferを初期化しないで使用していて、かつ、現在使用中の長さで
|なくbuffer全体をmemcmpしてしまっているため、未使用のゴミ部分
|で不一致が発生してしまうことがあるようです。
|
|ruby的には、添付の1行パッチ(なかださん製)で直っちゃいますが、
|md5.cやsha1.cなどの立場的には、個別の*_Init内でbufferを初期
|化してやるか、*_Equal内でちゃんと必要な長さのみ判定するよう
|に修正すべきようにも思います。
|
|どうしましょう?
とりあえずパッチを当てるということで。ソースを斜めに読んだ限
りではbufferをどこまで使っているかという情報は管理してないみ
たいだし。