github / github/codeql

False Positive: DoNotCallFinalize.ql cannot detect 'finalize()' in the function call chain.

Abierto
#21,394 0 comentarios 0 reacciones 0 asignados Ver en GitHub
false-positive
Lenguaje dominante
CodeQL
Estrellas
10.1k
Forks
2.1k
Merge medio
2 d 15 h
PR fusionados (30 d)
141

Descripción

**Version**
2.23.9

**Description of the false positive**

When I use java/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql to detect the code as below, it passes normally.
```java
public class NegCase2 {
@Override
protected void finalize() throws Throwable {
// Override of finalize with super.finalize call is allowed.
super.finalize();
}
}

```
However, when I put "super.finalize();" into another function for calling, DoNotCallFinalize.ql reported a problem.
```java
public class NegCase2_Var3 {
// Helper method to encapsulate the call
private void callSuperFinalize() throws Throwable {
super.finalize(); // [REPORTED LINE]
}
@Override
protected void finalize() throws Throwable {
// Delegate to helper
callSuperFinalize();
}
}
```
These two code snippets are essentially the same and should both pass the test.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con java/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql y compara cómo gestiona la llamada directa a super.finalize() con la misma llamada dentro de callSuperFinalize(). Ejecuta la consulta contra ambos fragmentos; se considera terminado cuando la versión con el método auxiliar se trata de forma coherente con la llamada directa y deja de notificarse.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
security
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.