CWARN.PASSBYVALUE.EXC

値によって渡された例外オブジェクトが大きすぎます

CWARN.PASSBYVALUE.EXC チェッカーは、値によって渡された例外オブジェクトが大きすぎるインスタンスを検出します。

脆弱性とリスク

値によって渡すことは必ずしもエラーではありませんが、コピーされるデータ量のためパフォーマンスが低下する可能性があります。

脆弱コード例

コピー
  struct big_exc {
  char str[111];
  };
  
  void foo() {
    try 
    {
      /*...*/
    } 
   catch(big_exc be) 
   {
     /*...*/
   }
 }

Klocwork は、例外オブジェクト 'be' が大きすぎる 10 行目にフラグを立てます。

関連チェッカー