github / github/codeql

False positive: Go x, _ := strconv.ParseUint(,, strconv.IntSize-1); int(x)

未關閉
#14,733 3 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
false-positive Go
主要語言
CodeQL
星號
10.1k
分支
2.1k
平均合併
2 天 15 小時
30 天內合併 PR
141

描述

**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.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。