チケット #23905

addwords: セグメンテーション違反

登録: 2010-12-15 14:09 最終更新: 2013-04-07 14:21

報告者:
担当者:
(未割り当て)
チケットの種類:
状況:
オープン
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし

詳細

もう誰もメンテナンスしていないかも知れませんが、一応。 x86_64 で addwords すると、セグメンテーション違反が発生します。

$ echo 'あ #T35 あ' | addwords user

セグメンテーション違反です (コアダンプ)
$
gdb で bt 追うと以下のように見えます。
(gdb) bt
#0  0x00007f1cfcdd62e9 in vfprintf () from /lib/libc.so.6
#1  0x00007f1cfcdd75d0 in ?? () from /lib/libc.so.6
#2  0x00007f1cfcdd237e in vfprintf () from /lib/libc.so.6
#3  0x00007f1cfce75462 in __fprintf_chk () from /lib/libc.so.6
#4  0x0000000000406d82 in ?? ()
#5  0x0000000000401e83 in ?? ()
#6  0x000000000040631a in ?? ()
#7  0x0000000000402cf2 in ?? ()
#8  0x00007f1cfcdaed2d in __libc_start_main () from /lib/libc.so.6
#9  0x0000000000401789 in ?? ()
#10 0x00007fffd4ffe818 in ?? ()
#11 0x000000000000001c in ?? ()
#12 0x0000000000000002 in ?? ()
#13 0x00007fffd4fffb43 in ?? ()
#14 0x00007fffd4fffb4c in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) 
デバッグオプションを付けて追うと、
#0  0x00007f73213953e5 in __fprintf_chk () from /lib/libc.so.6
#1  0x00007f732165bc17 in T.268 () from lib/canna/libcanna.so
#2  0x0000000000405e5b in RkDefineLine ()
#3  0x0000000000401cdd in ParseFile ()
#4  0x0000000000401e16 in Addwords ()
#5  0x0000000000403c1f in add_main ()
#6  0x0000000000403dc4 in main ()
となりますが、T.268()というのが分からないので、お手上げ気味...

添付ファイルリスト

チケットの履歴 (6 件中 3 件表示)

2010-12-15 14:09 更新者: oku
  • 新しいチケット "addwords: セグメンテーション違反" が作成されました
2012-06-18 16:31 更新者: hiroseyuuji
コメント

同じ問題でここに来ました。 lib/RK/dd.c line 745 の int tloc; を time_t にすれば直ります。

他にも time_t を利用すべきところでintなのがちょこちょこありますが、 cannaの流儀的にどの宣言に統一すればいいのでしょうね。 ir_time_t と TIME_T があるようですが。

2013-04-05 07:10 更新者: oku
コメント

TIME_T は lib/RK/tempdic.c 内のローカル利用なので、ir_time_t に揃えてしまうのがよさそうに感じられますね。

時刻を使用するところは素直に #include "IR.h" して、ir_time_t を使えばいいのではないかと。

2013-04-06 17:30 更新者: oku
コメント

あ〜... プロトコル上の「時刻」と時計の「時刻」をきちんとわけないとマズいですね。どうするのがいいのかな。

2013-04-07 14:13 更新者: oku
  • 添付ファイル canna-3.7_p3-time.patch (File ID: 4898) が付加されました
2013-04-07 14:21 更新者: oku
コメント

とりあえず、手元では何とか動くようにしました(Gentoo-13.0 + GCC-4.6.3。他では動かんかも)。 そろそろ canna はやめないとマズいかなぁ。

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする