2006年10月23日の日記の1番目の記事へのコメント

gaim-2.0.0beta4でYahooのユーザ情報取得

何か今日になってgaimが超不安定になり,次第に悪化して最終的に上げたら即落ちるという酷い状況になってしまったんですが,その原因を追っている過程で全然違う問題に遭遇.Yahooのアカウント右クリックしてユーザ情報取得しようとすると100%gaimが死んでしまうようです.バックトレースを見るとstrndupで長さに-1が渡されてるのが落ちてる原因みたいなんですが,それが発生しているのが libgaim/util.c の1138行目付近.

何だかわからんけど文字列比較がはみ出てるみたいですねー.↓みたいなコードで,end_tokenがスペースで,*pがスペースだったりすると,pがqを追い抜いて,q - p で求める長さが-1になっちゃうみたいな.

        q = strstr(p, end_token);

        /* Trim leading blanks */
        while (*p != '\n' && g_ascii_isspace(*p)) {
                p += 1;
        }

というわけで↓とかやっとけばとりあえず解決.ていうかWindows版の2.0.0beta3.1でも落ちるな・・・.うーん,初歩的だけど,これってもしかして日本のYahoo固有の問題だったりすんのかな?

--- /home/compile/gaim-2.0.0beta4.org/libgaim/util.c    2006-10-23 21:11:38.000000000 +0900
+++ /home/compile/gaim-2.0.0beta4/libgaim/util.c        2006-10-24 01:08:43.000000000 +0900
@@ -1099,7 +1099,7 @@
        }

        /* Don't bother with null strings */
-       if (p == q)
+       if (p >= q)
                return FALSE;

        if (q != NULL && (!no_value_token ||
@@ -4031,233 +4031,3 @@
        return buf;
 }

[コメントを書く]

大王 2007/01/19(金) 01:00:21
一応直してみました。
Yahoo! Japanのプロフィールページのフォーマットが他の国のと多少違うのがそもそもの原因で、
項目の抜き出しで失敗していました。

http://sourceforge.net/tracker/index.php?func=detail&aid=1638469&group_id=235&atid=300235
http://sourceforge.net/tracker/index.php?func=detail&aid=1467348&group_id=235&atid=100235
nosuke 2007/01/19(金) 05:34:31
おお〜,あとで2.0.0beta5に手マージして試してみたいと思います.

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2006年10月23日の日記の1番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2006年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ