OpenSSLにバグを見つけたので修正したよ
もふったーが OpenSSL の処理内でたまに落っこちることがあったのですが、なかなか捕捉できませんでした。
ですが、ついにデバッガでとらえることに成功!
push esi mov esi,[esp+14h] push edi push ebp mov [esp+18h],esi xor edi,edi call jmp_LIBEAY32.dll!LIBEAY32.1654 add esp,00000004h test eax,eax jle L1001FA0B push ebx mov ebx,[esp+20h] nop L1001F980: push edi push ebp call jmp_LIBEAY32.dll!LIBEAY32.1653 add esp,00000008h test dword ptr [eax+0Ch],00000100h jnz L1001F999 test byte ptr [eax+10h],80h jz L1001F9A6 |
LIBEAY32.dll!LIBEAY32.1653 ってのは sk_value 関数
これの結果が0だった時の処理をしていないのが原因でした
調べてみたら少なくとも以下の関数に問題があることが分かったよ。
crypto\conf\cnf_save.c
\ssl\t1_lib.c
ssl\s3_srvr.c
ssl\s23_clnt.c
ssl\ssl_lib.c
ssl\s3_lib.c
ssl\ssl_ciph.c
ssl\ssltest.c
ssl\s3_clnt.c
ssl\kssl.c
ssl\d1_clnt.c
ちゃんとNULL時の処理をしてる箇所もあるので、単なる抜けじゃないかな?
【BM】Windows 95 で動作するOpenSSLライブラリ作ったよ!
修正版のバイナリとソースコード(差分をアップしたよ)
もう、本家にはフィードバックされたのでしょうか?
次のバージョンで直ってるといいですね。
P.S.
全然関係ないですが、Adobe Flash Playerの新バージョ
ン 11.3.300.268 が出たようですね。ここで指摘されて
たバグ、直ってるかな?