[sylpheed-jp:10277] SSL を使うと落ちる問題について (Re: Sylpheed 2.4.0 (stable) released)

Akihiro Okamura aokamura @ iris.eonet.ne.jp
2007年 4月 22日 (日) 15:35:29 JST


岡村です。

SSL を使うと落ちる問題ですが、メモリの alloc/free が、ランタイムをまたがって行なわれて
いることが原因のようです。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vclib/html/_crt_c_run.2d.time_libraries.asp
には下記のような記載があります。

---
msvcrt.dll と msvcr71.dll の境界を越えて CRT リソースを渡す場合は、CRT の不一致によって問題が発生するため、Visual C++ .NET でプロジェクトをコンパイルし直す必要があります。
---

SSLライブラリは MSVCR71.DLL にリンク、sylpheed (GLIB) は、MSVCRT.DLL にリンクされて
いますが、libsylph の中で SSLライブラリ側で alloc したメモリを GLIB の関数(マクロ?)を
使って free している個所があり、上記に該当しています。
落ちているのも、GLIB の free を呼び出したタイミングでしたので、この処理が原因だと思われます。

というわけで、パッチを添付します。
手元の落ちていた環境では、このパッチをあてた sylpheed で SSL+IMAP が使えることを
確認済みです。


-----------------------------------
   岡村 明洋 (aokamura @ iris.eonet.ne.jp)
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: ssl.c.patch
型:         application/octet-stream
サイズ:     890 バイト
説明:       無し
URL:        http://www.sraoss.jp/pipermail/sylpheed-jp/attachments/20070422/45d5f879/attachment.obj 


Sylpheed-jp メーリングリストの案内