メモリ安全性
様々な種類のメモリエラーが発生する可能性がある:
アクセスエラー: ポインタの無効な読み取りと書き込み バッファオーバーフロー - 範囲外の書き込みは、隣接するオブジェクトの中身や内部データ (ヒープの管理領域など)、リターンアドレスを破壊する可能性がある。 バッファオーバーリード(英語版) - 範囲外の読み取りは、機密データを明らかにしたり、攻撃者がアドレス空間配置のランダム化を回避するのに役立つ。 競合状態 - 共有メモリへ同時に読み取りと書き込みを行う。 無効ページフォールト - 仮想アドレス空間で未定義のポインタへアクセスする。ヌルポインタの参照外しは、殆どの環境では例外又はプログラムの終了を引き起こすが、メモリ保護のない場合や、ヌルポインタの使用時に大きなオフセットや負のオフセットが含まれていた場合、カーネル又はシステムが破壊される可能性がある。 解放後使用 - 削除されたオブジェクトのアドレスを格納しているダングリングポインタ(英語版)の参照外し。
未初期化変数(英語版): 定義されていない変数を使用した場合、望ましくない値が代入されたり、一部の言語では破損した値が代入される場合がある ヌルポインタの参照外し - 無効なポインタ又は割り当てられていないメモリへのポインタの参照外し。 ワイルドポインタ(英語版) - 何らかの既知の状態への初期化前にポインタが使用されると発生する。