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
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: #9295 ... but it seems the PR addressing the "old" issue doesn't address this case too.