CWE-460: Improper Cleanup on Thrown Exception(对引发的异常的清理不当)

 

 ID: 460

类型:变量
结构:简单

状态:草稿

描述

当抛出异常时,产品不会清除其状态或错误地清除其状态,从而导致意外的状态或控制流。

扩展描述

通常,当函数或循环变得复杂时,需要在整个执行过程中进行一定程度的资源清理。异常可能会干扰代码流,并防止发生必要的清理。

相关视图

与“研究层面”视图(CWE-1000)相关

同“体系结构概念”视图(CWE-1008)相关

与“开发层面”视图(CWE-699)相关

引入模式

阶段

说明

实现

实现:这个弱点是在实现架构安全策略的过程中造成的。

应用平台

语言

C (出现的可能性不确定)

C++ (出现的可能性不确定)

Java (出现的可能性不确定)

C# (出现的可能性不确定)

后果

范围

冲击

可能性

其它

技术冲击: 根据上下文而变

代码可能会处于糟糕的状态

 

被利用的可能性:

一般

示例

例1

参见下例.

(问题代码)

Example Language: Java 

public class foo {

public static final void main( String args[] ) {


boolean returnValue;
returnValue=doStuff();

}
public static final boolean doStuff( ) {


boolean threadLock;
boolean truthvalue=true;
try {


while(
//check some condition
) {


threadLock=true; //do some stuff to truthvalue
threadLock=false;

}

}
catch (Exception e){


System.err.println("You did something bad");
if (something) return truthvalue;

}
return truthvalue;

}

}

在此例中,线程可能不经意间被锁死。

应对措施

阶段: 实现

如果通过抛出异常而从循环或函数中中断,请确保发生清理,或者应该退出程序。使用很少抛出异常。

种属

关系

类型

ID

名称

属于

851

The CERT Oracle Secure Coding Standard for Java (2011) Chapter 8 - Exceptional Behavior (ERR)

属于

880

CERT C++ Secure Coding Section 12 - Exceptions and Error Handling (ERR)

属于

961

SFP Secondary Cluster: Incorrect Exception Behavior

属于

1141

SEI CERT Oracle Secure Coding Standard for Java - Guidelines 07. Exceptional Behavior (ERR)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值