Java: `Argument.isExplicitVarargsArray()` erroneously holds for primitive array as element of generic varargs parameter
- Ngôn ngữ chính
- CodeQL
- Star
- 10.1k
- Fork
- 2.1k
- Merge trung bình
- 2 ngày 15 giờ
- Pull request đã merge (30 ngày)
- 141
Mô tả
### Version
CodeQL CLI version: 2.5.5
CodeQL c4f604bafe146900e5d4e7265afc1822cabfa88a
### Description
The predicate `Argument.isExplicitVarargsArray()` erroneously holds when a primitive array (e.g. `int[]`) is used as single element for a varargs parameter of generic type.
Note that a non-generic varargs parameters (i.e. `Object...`) does not seem to be affected.
Java:
```java
class VarargsTest {
void sink(T... objects) { }
void test() {
// Erroneously claims this is an explicit varargs array
sink(new int[10]);
sink(1, 2, 3);
sink("a", "b");
sink(1, "a");
Object o = null;
sink(o);
sink(o, o);
}
}
```
Query:
```ql
import java
from Argument arg
where arg.isExplicitVarargsArray()
select arg
```
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.