Prevent panic: unexpected constant value: <nil> (#1232)
Some checks failed
CI / test (map[go:1.22.7 golangci:latest]) (push) Has been cancelled
CI / test (map[go:1.23.1 golangci:latest]) (push) Has been cancelled
Security Scan / build (push) Has been cancelled
CI / coverage (push) Has been cancelled

This commit is contained in:
Laurent Demailly 2024-09-20 01:58:58 -07:00 committed by GitHub
parent 6741874d9b
commit 1d23143bee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -360,7 +360,11 @@ func updateResultFromBinOp(result *rangeResult, binOp *ssa.BinOp, instr *ssa.Con
if !ok { if !ok {
return return
} }
// TODO: constVal.Value nil check avoids #1229 panic but seems to be hiding a bug in the code above or in x/tools/go/ssa.
if constVal.Value == nil {
// log.Fatalf("[gosec] constVal.Value is nil flipped=%t, constVal=%#v, binOp=%#v", operandsFlipped, constVal, binOp)
return
}
switch binOp.Op { switch binOp.Op {
case token.LEQ, token.LSS: case token.LEQ, token.LSS:
updateMinMaxForLessOrEqual(result, constVal, binOp.Op, operandsFlipped, successPathConvert) updateMinMaxForLessOrEqual(result, constVal, binOp.Op, operandsFlipped, successPathConvert)