False positive: Go x, _ := strconv.ParseUint(,, strconv.IntSize-1); int(x)
- Dominant language
- CodeQL
- Stars
- 10.1k
- Forks
- 2.1k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 141
Description
**Description of the false positive**
If I'm not mistaken and making a terribly stupid mistake here I would expect that Go's `strconv.IntSize-1` should cover the positive range of an `int`, regardless of architecture integer size. The actual value range returned by `strconv.ParseUint` in an `uint64` should be correctly castable to an `int` without ambiguities.
Currently, CodeQL scanning reports "Incorrect conversion between integer types". Am I getting this one horribly wrong?
**Code samples or links to source code**
```go
fd, err := strconv.ParseUint(fdInfoEntry.Name(), 10, strconv.IntSize-1)
if err != nil {
continue
}
taptunFd, err := unix.PidfdGetfd(pidfd, int(fd), 0)
```
https://github.com/siemens/ghostwire/pull/29/checks?check_run_id=18520023133
Related: https://github.com/github/codeql/issues/9295 ... but it seems the PR addressing the "old" issue doesn't address this case too.
Contributor guide
Assessment
This issue has not been assessed yet.