github / github/codeql

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

Ouverte
#4,005 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
question
Langage dominant
CodeQL
Étoiles
10.1k
Forks
2.1k
Merge moyen
2 j 15 h
PR mergées (30 j)
141

Description

`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)?

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.