アカウント名:
パスワード:
直前で strlcpy を使ってるんだから、strlcat すればいいのに。ちょっと前を見れば static char passwd[MD5_HASH_MAX_LEN] ってあるようにサイズもわかってるんだから。
違うよ。strncatに書き換えた時点では問題なかった。その後で [php.net]さらにstrlcatに書き換えたのに、第3引数をそのままにしてたからバグったの。参考: PHP5.3.7のcrypt関数のバグはこうして生まれた [tokumaru.org]
まあタイトルがわかりづらいよね。どっちかっていうと"strlcatの罠にはまった"のであって。記事の内容も微妙に語弊があるかな。
>ちゃうちゃう。正しくは「静的解析ツールの罠にはまった」>コードの意味理解しない馬鹿を黙らせるためだけに、>必要のない変更を行い、そこでエンバグしたわけ。>静的解析ツールって馬鹿判別機(使うヤツがアホ的な意味で)としては役立つけど、>本当にコードを解析させちゃいけない。
それは一般性のない極論ですね。ツールは使い方次第で使い方は使う側の人間(たち)の都合次第。そして、あなたの周囲だけが世界のすべてではありません。
今回の件で言えば、静的解析の警告を消すことはエンバグの直接の原因ではありません。それは疑いようのない事実で、タコなことが起きたのはその後の話です。
直接の原因ではありませんが、さらに深いところにある原因ではありますね。どちらを問題視するか、どちらが一般的な話として適用しやすいか、言うまでもありません。
両方問題ではあるんですが。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
なぜわざわざstrncat (スコア:1)
直前で strlcpy を使ってるんだから、strlcat すればいいのに。
ちょっと前を見れば static char passwd[MD5_HASH_MAX_LEN] ってあるように
サイズもわかってるんだから。
Re: (スコア:5, 参考になる)
違うよ。strncatに書き換えた時点では問題なかった。その後で [php.net]さらにstrlcatに書き換えたのに、第3引数をそのままにしてたからバグったの。
参考: PHP5.3.7のcrypt関数のバグはこうして生まれた [tokumaru.org]
Re: (スコア:0)
まあタイトルがわかりづらいよね。
どっちかっていうと"strlcatの罠にはまった"のであって。
記事の内容も微妙に語弊があるかな。
Re:なぜわざわざstrncat (スコア:0)
コードの意味理解しない馬鹿を黙らせるためだけに、必要のない変更を行い、そこでエンバグしたわけ。
静的解析ツールって馬鹿判別機(使うヤツがアホ的な意味で)としては役立つけど、本当にコードを解析させちゃいけない。
# 逆に動的解析は極まれだけど役立つことあるけどね。本当にどこにあるか分からないメモリリーク探すときとか。
Re: (スコア:0)
>ちゃうちゃう。正しくは「静的解析ツールの罠にはまった」
>コードの意味理解しない馬鹿を黙らせるためだけに、
>必要のない変更を行い、そこでエンバグしたわけ。
>静的解析ツールって馬鹿判別機(使うヤツがアホ的な意味で)としては役立つけど、
>本当にコードを解析させちゃいけない。
それは一般性のない極論ですね。
ツールは使い方次第で使い方は使う側の人間(たち)の都合次第。
そして、あなたの周囲だけが世界のすべてではありません。
今回の件で言えば、
静的解析の警告を消すことはエンバグの直接の原因ではありません。
それは疑いようのない事実で、
タコなことが起きたのはその後の話です。
Re:なぜわざわざstrncat (スコア:1)
直接の原因ではありませんが、さらに深いところにある原因ではありますね。
どちらを問題視するか、どちらが一般的な話として適用しやすいか、言うまでもありません。
両方問題ではあるんですが。