CWARN.PASSBYVALUE.EXC

由值传递的异常对象过大

CWARN.PASSBYVALUE.EXC 检查器可查找其中由值传递的异常对象过大的实例。

漏洞与风险

通过值传递不一定是错误,但是它可由于复制的数据量导致性能损失。

漏洞代码示例

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

Klocwork 标记了第 10 行,该行中的异常对象 be 过大。

相关检查器