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