[]
C言語における脆弱なメモリ管理の問題は、数年前に。それに対して、最近の様々なオペレーティングシステムやランタイムプラットフォームの進歩は、アドレス空間のランダム化といったメモリ管理のリスクに対する様々なプロテクションを提供し、Valgrindのような様々なツールはメモリアクセスのバグを発見し、危険度を大幅に下げることができる、と反論しようとする人もいました。その議論を再読することを強くお勧めします。
、この境界チェックの欠如の結果のもう一つの例です。Valgrind のようなツールではチェックできません。なぜなら、それは通常のトリガーされたアクションではないからです。
実際、ようなバグを完全に回避するプログラムを書けるほど賢いプログラマーはいません。結局のところ、プログラマーはプログラムの論理に集中して学習し、コーディングするのです。境界チェック機構のないプログラミング言語では、コンピュータがプログラム中のコードや変数とは関係のないメモリ・コンテンツにアクセスして実行できるため、ロジックが狂う可能性があります。境界チェックのないプログラミング言語はすべて、コンピュータの複数の次元をプログラムにさらすことになります。もしあなたが、OpenSSLの開発チームより優れていて、この状況に対処できると考えているなら、それは冗談です。
ソフトウェアのバグを避けることは不可能ですが、無限にあると思われるバグの発生源を塞ぐことは可能です。そのため、インターネットは非常に早い時期にモリス・ワームに苦しめられました。2年後の今、世界のインターネット・トラフィックの70%が暴露され、多大な犠牲を払っています。もし私たちがこのソースを塞がなければ、将来もっと多くの犠牲を払うことになるでしょう。




