github / github/codeql

[Java] WildcardTypeAccess.hasNoBound() returns wrong result for array bounds

Abierto
#4,005 0 comentarios 0 reacciones 0 asignados Ver en GitHub
question
Lenguaje dominante
CodeQL
Estrellas
10.1k
Forks
2.1k
Merge medio
2 d 15 h
PR fusionados (30 d)
141

Descripción

`WildcardTypeAccess.hasNoBound()` returns for wildcards bounded by an array type, that they have no bound.
Example query:
```ql
import java

from WildcardTypeAccess w
where
exists (w.getUpperBound())
and w.hasNoBound()
select w
```
[Query console link](https://lgtm.com/query/1406379471933943968/)

The issue appears to be that this predicate only checks for `TypeAccess` children, however `ArrayTypeAccess` is not a subclass of `TypeAccess`:
https://github.com/github/codeql/blob/595ab442e66a0911f836ae859faebcd3f4f0177d/java/ql/src/semmle/code/java/Expr.qll#L1589-L1590

Maybe it would suffice checking that any child expression at index 0 or 1 exists (or would that also match annotations somehow)?

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.