汚染されたサイズでのメモリの割り当て
メモリ関数のサイズ引数がセキュリティで保護されないソースに由来する
説明
この欠陥は、calloc や malloc などのメモリ割り当て関数で、セキュリティで保護されていないソースからのサイズ引数が使用された場合に発生します。
リスク
メモリ割り当てが制御されていないと、プログラムによってシステム メモリが過剰に要求されることがあります。その結果、メモリ不足の状態やリソースの過剰割り当てによりクラッシュすることがあります。
修正方法
メモリを割り当てる前に引数の値をチェックして、範囲を超えないことを確認します。
チェッカーの拡張
既定では、Polyspace® は外部ソースからのデータは汚染されていると仮定します。Polyspace 解析での汚染のソースを参照してください。Polyspace 解析の現在のスコープ以外から発生したすべてのデータを汚染されたものと見なすには、コマンド ライン オプション [-consider-analysis-perimeter-as-trust-boundary] を使用します。
例
結果情報
| グループ: 汚染されたデータ |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: TAINTED_MEMORY_ALLOC_SIZE |
| 影響度: Medium |
バージョン履歴
R2015b で導入