CWE-568 没有super.finalize()的finalize()方法

finalize() Method Without super.finalize()

结构: Simple

Abstraction: Variant

状态: Draft

被利用可能性: unkown

基本描述

The software contains a finalize() method that does not call super.finalize().

扩展描述

The Java Language Specification states that it is a good practice for a finalize() method to call super.finalize().

相关缺陷

  • cwe_Nature: ChildOf cwe_CWE_ID: 573 cwe_View_ID: 1000

  • cwe_Nature: ChildOf cwe_CWE_ID: 459 cwe_View_ID: 1000 cwe_Ordinal: Primary

适用平台

Language: {'cwe_Name': 'Java', 'cwe_Prevalence': 'Undetermined'}

常见的影响

范围 影响 注释
Other Quality Degradation

可能的缓解方案

Implementation

策略:

Call the super.finalize() method.

Testing

策略:

Use static analysis tools to spot such issues in your code.

示例代码

The following method omits the call to super.finalize().

bad Java

protected void finalize() {
discardNative();
}

分类映射

映射的分类名 ImNode ID Fit Mapped Node Name
The CERT Oracle Secure Coding Standard for Java (2011) MET12-J Do not use finalizers
Software Fault Patterns SFP28 Unexpected access points