メモリの操作に使用するオブジェクトのサイズがハードコードされています
sizeof
の代わりにサイズがハードコードされているメモリ操作
説明
この欠陥は、ハードコードされている定数を次のメモリ関数のメモリ サイズ引数として使用する場合に発生します。
malloc
やcalloc
などの動的メモリ割り当て関数。memcpy
、memmove
、memcmp
、memset
などのメモリ操作関数。
メモリ サイズをハードコードしている場合、文字列リテラルを使用してメモリ操作を実行すると、Polyspace® は欠陥を報告しません。
リスク
オブジェクトのサイズをハードコードすると、コードが、型のサイズが異なるアーキテクチャに移植できません。定数値がオブジェクトのサイズと同じでない場合、バッファーがオーバーフローしたり、しなかったりする可能性があります。
修正方法
メモリ関数のサイズ引数には、sizeof(
を使用します。object
)
例
結果情報
グループ: 適切な手法 |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: HARD_CODED_MEM_SIZE |
影響度: Low |