github / github/codeql

Java: `Argument.isExplicitVarargsArray()` erroneously holds for primitive array as element of generic varargs parameter

Đang mở
#5,929 1 bình luận 0 reaction 1 người được giao Được @aschackmull nhận Xem trên GitHub
question
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

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.