ポインターによるメモリーへの書き込みでバッファー・オーバーフローが発生します。
これは、バッファー・オーバーフロー・エラーの 1 つで、ポインターによるアクセスで発生します。配列へのポインターに、その配列の範囲外へのインデックスが渡されています。例えば、4 つの要素を持つ配列へのポインターが 3 番目の要素を指している場合、このポインターに渡すことができるインデックスの値は -2 から +1 の間でなければなりません。
このエラーが動的に割り当てられたストレージで発生すると、通常はそのストレージが割り当てられた場所も表示されます。
場合によっては、インデックス、オフセット、サイズを正確に特定できないことがあります。この場合、バッファー・オーバーフローの "可能性がある" と診断されます。例えば、解析の結果、オフセットは 10 以下、インデックスは 20 以下、サイズは 25 以下でなければならないと判断された場合、 同時にすべての値が上限を超えると、バッファー・オーバーフローが発生します。ただし、これらの値のいずれかが上限を超えてもバッファー・オーバーフロー・エラーが発生する可能性があります (例えば、オフセットが 9、インデックスが 19、サイズが 26 の場合)。
解析によって判断された状態が不可能な場合であっても、バッファー・オーバーフローが発生しないようにしなければなりません。
ID |
問題箇所 |
説明 |
---|---|---|
1 |
バッファー・オーバーフロー |
境界エラーの場所 |
© 2010 Intel Corporation. 無断での引用、転載を禁じます。