解決:Crypt::SSLeayがSegmentation faultでcoreを吐く件について
追記
0.52_01 2006-12-17
- add call to SSL_library_init() in new()
というわけで、最新版のCrypt::SSLeayでは修正されています。
表題の件(http://d.hatena.ne.jp/holidays-l/20060828/p3)に関してid:odzさんからトラックバックをいただきました。
どうみても初トラックバックです。本当にありがとうございm(ry
不思議に思って apt-get source libcrypt-ssleay-perl してソースパッケージを取得してみると、
(略)
+ SSL_library_init();
(略)
ってパッチが当たってた。ぐはぁ。
とのことなので、opensslを最新版に戻すことに。
Cygwinのsetup.exeでopenssl-0.9.8b, openssl-devel-0.9.8b(共に最新版)を再インストールし、Crypt::SSLeayも再インストール。
例のアレをやると案の定落ちた。
$ perl -MCrypt::SSLeay -e 'my $ctx = Crypt::SSLeay::CTX->new(23);' Segmentation fault (core dumped)
次にCrypt::SSLeayにパッチを当ててインストールする。
$ cpan cpan> look Crypt::SSLeay $ cat Crypt-SSLeay-0.51.patch --- SSLeay.xs.orig 2003-05-28 15:55:02.000000000 +0900 +++ SSLeay.xs 2006-08-30 12:03:26.053808000 +0900 @@ -106,6 +106,8 @@ char buf[1024]; int rand_bytes_read; + SSL_library_init(); + if(!bNotFirstTime) { SSLeay_add_all_algorithms(); SSL_load_error_strings(); $ patch -p0 < Crypt-SSLeay-0.51.patch $ perl Makefile.PL $ make $ make test $ make install
問題なく完了。例のアレも落ちなくなった。
$ perl -MCrypt::SSLeay -e 'my $ctx = Crypt::SSLeay::CTX->new(23);'
id:odzさん、どうもありがとうございました。