switch 条件の case がありません
switch 変数が case によってカバーされておらず、default ケースがない
説明
この欠陥は、変数 switch が case ステートメントでカバーされない値を取る可能性がある場合に発生します。
メモ
Bug Finder では、switch 変数が全範囲でない場合にのみ欠陥が報告されます。
リスク
switch 変数が case ステートメントでカバーされていない値を取る場合、プログラムで想定外の動作になることがあります。
セキュリティについての判定をする switch ステートメントは、取りうる値が必ずしもすべて明示的に扱われているわけではない場合、特に脆弱になります。攻撃者はこの状況を利用して正規の実行フローを逸脱させることができます。
修正方法
case ステートメントでカバーされない値をすべてキャッチする受け皿として default ステートメントを使用することをお勧めします。switch 変数が想定外の値を取ったとしても、結果の動作は予想どおりになります。
例
結果情報
| グループ: セキュリティ |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: MISSING_SWITCH_CASE |
| 影響度: Low |
バージョン履歴
R2015b で導入