パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

PHP 5.3.7に重大なバグ、strncatの罠にはまる」記事へのコメント

  • 直前で strlcpy を使ってるんだから、strlcat すればいいのに。
    ちょっと前を見れば static char passwd[MD5_HASH_MAX_LEN] ってあるように
    サイズもわかってるんだから。

    • Re: (スコア:5, 参考になる)

      by Anonymous Coward

      違うよ。strncatに書き換えた時点では問題なかった。その後で [php.net]さらにstrlcatに書き換えたのに、第3引数をそのままにしてたからバグったの。
      参考: PHP5.3.7のcrypt関数のバグはこうして生まれた [tokumaru.org]

      • by Anonymous Coward

        まあタイトルがわかりづらいよね。
        どっちかっていうと"strlcatの罠にはまった"のであって。
        記事の内容も微妙に語弊があるかな。

        • by Anonymous Coward on 2011年08月24日 20時16分 (#2008781)
          ちゃうちゃう。正しくは「静的解析ツールの罠にはまった」
          コードの意味理解しない馬鹿を黙らせるためだけに、必要のない変更を行い、そこでエンバグしたわけ。
          静的解析ツールって馬鹿判別機(使うヤツがアホ的な意味で)としては役立つけど、本当にコードを解析させちゃいけない。
          # 逆に動的解析は極まれだけど役立つことあるけどね。本当にどこにあるか分からないメモリリーク探すときとか。
          親コメント
          • by Anonymous Coward

            >ちゃうちゃう。正しくは「静的解析ツールの罠にはまった」
            >コードの意味理解しない馬鹿を黙らせるためだけに、
            >必要のない変更を行い、そこでエンバグしたわけ。
            >静的解析ツールって馬鹿判別機(使うヤツがアホ的な意味で)としては役立つけど、
            >本当にコードを解析させちゃいけない。

            それは一般性のない極論ですね。
            ツールは使い方次第で使い方は使う側の人間(たち)の都合次第。
            そして、あなたの周囲だけが世界のすべてではありません。

            今回の件で言えば、
            静的解析の警告を消すことはエンバグの直接の原因ではありません。
            それは疑いようのない事実で、
            タコなことが起きたのはその後の話です。

            • by fukapon (4131) on 2011年08月25日 9時26分 (#2008959)

              直接の原因ではありませんが、さらに深いところにある原因ではありますね。
              どちらを問題視するか、どちらが一般的な話として適用しやすいか、言うまでもありません。

              両方問題ではあるんですが。

              親コメント

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

処理中...