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