string 配列での null 値の欠落
文字列が null 文字で終了していない
説明
この欠陥は、null 文字 '\0'
で終了するだけの十分なスペースが文字列にない場合に発生します。
この欠陥は C のプロジェクトのみに当てはまります。
リスク
暗黙的な NULL 終端を仮定せずに文字列を配列にコピーすると、バッファー オーバーフローが発生する可能性があります。
修正方法
文字配列をリテラルで初期化する場合、配列範囲の指定を避けます。
char three[] = "THREE";
初期化後に問題が発生した場合、NULL 終端を考慮するために配列のサイズを 1 だけ増やさなければならない場合があります。
特定の状況では、文字列の代わりに文字のシーケンスを使用して文字配列を初期化することが必要な場合があります。この場合、改めてレビューされないように結果またはコードにコメントを追加します。詳細は、以下を参照してください。
Polyspace ユーザー インターフェイスでのバグ修正または正当化による結果への対処 (Polyspace ユーザー インターフェイスで結果をレビューする場合)。
Polyspace Access でのバグ修正または正当化による結果への対処 (Polyspace Access) (Web ブラウザーで結果をレビューする場合)。
コードへの注釈付けと既知の結果または許容可能な結果の非表示 (IDE で結果をレビューする場合)
例
結果情報
グループ: プログラミング |
言語: C |
既定値: 手書きコードはオン、生成コードはオフ |
コマンド ライン構文: MISSING_NULL_CHAR |
影響度: Low |
バージョン履歴
R2013b で導入