[前][次][番号順一覧][スレッド一覧]

sylpheed-jp:2262

From: 吉山 晃 <yosshy@xxxxxxxxxx>
Date: Mon, 24 Mar 2003 01:47:14 +0900
Subject: [sylpheed-jp:02262] 中国語メールで sylpeed が落ちるケースについて


  吉山です。
  Debian GNU/Linux (current)上で、

	Content-Type: text/html;charset="GB2312"

のメールをプレビューした時に時々 sylpeed が落ちる現象を調査していましたが、
ようやく原因を特定しました。
  --with-native-locale=no で build した gdk を使用していると、
gdk_mbstowcs() の処理中に以下の function call が起こります。

#0  0x404cda51 in kill () from /lib/libc.so.6
#1  0x4034024b in pthread_kill () from /lib/libpthread.so.0
#2  0x40340521 in raise () from /lib/libpthread.so.0
#3  0x404ce986 in abort () from /lib/libc.so.6
#4  0x404c7ae9 in __assert_fail () from /lib/libc.so.6
#5  0x4001327f in gconv () from /usr/lib/gconv/EUC-JP.so
#6  0x40012c0f in gconv () from /usr/lib/gconv/EUC-JP.so
#7  0x40519e9c in mbrtowc () from /lib/libc.so.6
#8  0x404cfdf4 in mbtowc () from /lib/libc.so.6   <--- here
#9  0x400188db in _init () from /usr/X11R6/lib/X11/locale/common/xlibi18n.so.2
#10 0x402080a9 in _XlcConvert () from /usr/X11R6/lib/libX11.so.6
#11 0x4020def1 in _XlcDeInitLoader () from /usr/X11R6/lib/libX11.so.6
#12 0x4020dfda in _XwcTextPropertyToTextList () from /usr/X11R6/lib/libX11.so.6
#13 0x401ea5b6 in XwcTextPropertyToTextList () from /usr/X11R6/lib/libX11.so.6
#14 0x401720b2 in gdk_mbstowcs () from /usr/lib/libgdk-1.2.so.0
#15 0x400b3638 in gtk_label_set_text () from /usr/lib/libgtk-1.2.so.0
#16 0x400b3556 in gtk_label_new () from /usr/lib/libgtk-1.2.so.0
#17 0x0806d49b in summary_set_column_titles (summaryview=0x81d9848) at summaryview.c:1556

  ここで、glibc (標準Cライブラリは全て?)の mbtowc() が thread safe でない
ために、内部保持しているエンコーディング変換ステートが不正になってabort()
が呼ばれてしまいまい、結果 sylpeed が core dump します。
--with-native-locale=yes にした gdk ではこの問題は起こりません。

  Debian 以外のディストリビューションで再現するかどうか知りませんが、同様
の現象に困っている人は gdk を疑ってみて下さい。

---
吉山あきら <yosshy@xxxxxxxxxx>


[前][次][番号順一覧][スレッド一覧]