[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00711] Re: uum patch for 1.1.1-a018



再び青野です。
#少し前のリプライですが、書いておいた方がよいかと思いまして…

<20010817101616J.hiroo@oikumene.gcd.org>の記事において
hiroo@oikumene.gcd.orgさんは書きました。

>> >   if(linux)
>> >       lang = setlocale(LC_ALL, "");
>> >   else
>> >       ...
(略)
>> と書いたのですが、ざっと見て行くと、大部分は #include の条件分岐だった
>> りして、上記のように直すとかえって複数の style がまざって変かもしれな
>> いです。

個人的には、これは現時点では保留でいいかと思います。

>> あと、jhlp.c の
>> 
>>  184           if (strlen (p) >= 4)
>>  185             {
>>  186               strncpy (lang_dir, p, LANGDIRLEN-1);
>>  187               lang_dir[LANGDIRLEN-1] = '\0';
>>  188             }
>>  189           else
>>  190             {
>>  191               strcpy (lang_dir, p);
>>  192             }
>>  193         }
>> 
>> って何故分岐しているのでしょう?

元々青野が作った(uumのセキュリティホール対応)パッチはバッ
ファオーバーフローの危険がありそうなところをstrncpy()に変
える方針で進めていった(…と思います)ので、その部分はOK(バッ
ファオーバーフローしない)と解釈したのだと思います。

もう少しソースを見ると、直後に比較する function_db[] (in
Wnn/uum/header.c) でのWnnの言語名が最大五文字(ex. ja_JP)に
なっているので、それ以上環境変数LANGから取り出すと比較に支
障が出ると考えたのでしょうか…。
----
青野智樹	(aono@cc.osaka-kyoiku.ac.jp)


http://www.freewnn.org/ FreeWnn Project