CWARN.PASSBYVALUE.EXC
由值传递的异常对象过大
CWARN.PASSBYVALUE.EXC 检查器可查找其中由值传递的异常对象过大的实例。
漏洞与风险
通过值传递不一定是错误,但是它可由于复制的数据量导致性能损失。
漏洞代码示例
复制
struct big_exc {
char str[111];
};
void foo() {
try
{
/*...*/
}
catch(big_exc be)
{
/*...*/
}
}
Klocwork 标记了第 10 行,该行中的异常对象 be 过大。