C++はC++11からスマートポインタと呼ばれる機能が標準ライブラリで提供されています。
動的に確保したメモリを勝手に解放してくれます。
ただ、それまで通り直接のポインタ操作も行うことができます。
この辺は今もあんまり変わってないかもです。
セキュリティでいうと、例えばmemset_explicitという関数が出来ました。
これはコンパイルフラグに最適化が指定されていても、この関数の処理は消されない...というものになります。
通常は、最適化すると
その後にメモリアクセスしなければmemsetの命令は消えてしまいます。以前はこれを解決するために、インラインアセンブラを書いたりなどの手法も用いられていました。
(昨今ではメモリにも秘匿情報を極力残さないという風潮があります)
その他、
求む 有識者の声
View quoted note →