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

オープンソースソフトウェアの脆弱性、2019年は前年から50%近く増加したとの調査結果」記事へのコメント

  • Cではバッファーエラー(CWE-119)・領域外読み込み(CWE-125)・NULLポインター参照(CWE-476)の順になっている。

    他の言語ではそもそも脆弱性になりえないから…と思ったが、ここではC++も「他の言語」なのか。みんな意外とC++の機能をちゃんと使っているということか

    • by Anonymous Coward

      ダメなプログラムを書いた責任を言語に擦り付けるようじゃ何使ってもダメでしょ
      チンパンジーがキーボードを乱打しても正常なプログラムが書けるような言語があるなら話は別だけど

      • by Anonymous Coward

        人間の注意力に責任を押し付けるようなやつは何をやってもダメ

        • by Anonymous Coward

          例えばポインタの存在しないプログラムで同じように初期化や値チェックが雑なプログラムを組んだらNULLポで落ちない代わりによくわからない想定外の動作をするプログラムになるだけでしょ?
          バッファーオーバランでセキュリティリスクになるよりはランタイムエラーで落ちる方が良いとか?
          注意力に限界はあるしプログラムにバグが発生するのはあたりまえ
          それをテストデバッグせずに言語が悪いと言う人はプログラマーに向いてない
          ※注意力散漫でもバグが無いプログラムを作れる言語なりシステムがあるなら教えてほしい

          • by Anonymous Coward on 2020年03月14日 23時10分 (#3779351)

            例えばポインタの存在しないプログラムで同じように初期化や値チェックが雑なプログラムを組んだらNULLポで落ちない代わりによくわからない想定外の動作をするプログラムになるだけでしょ?
            バッファーオーバランでセキュリティリスクになるよりはランタイムエラーで落ちる方が良いとか?

            例えば流行りのRustなら、ランタイムエラーどころか、そもそもビルドを通さない仕組みがいくつかあるよな。
            レースコンディションとかはきっちり叱ってくれる。解放済みのポインタの使用も。
            何もないよりは、こっちの方が断然良い。

            注意力に限界はあるしプログラムにバグが発生するのはあたりまえ

            そう。
            それを言語がカバーして叱ってくれるんだぜ。やっぱり言語の選択は重要よ。

            親コメント
            • by Anonymous Coward

              言語側でカバーして、文法レベルでエラーにしてくれるのが良いのはもちろんだが、Cは最近の静的解析使えばかなり改善する。
              いまどきの静的解析はとても優秀で一昔前だとリソース的に無理だったような、そこまでの実行パスで取りうる値を網羅的にチェックしてくれたりするんだよな。解放済みのポインタ参照なんか当たり前のように検出してくれる。
              valgrindはもう無くていいレベル

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

処理中...