Update securego/gosec from 2.23.0 to 2.25.0 (#2161)

This commit is contained in:
Erik Dubbelboer
2026-03-20 15:27:24 +09:00
committed by GitHub
parent 4001e91911
commit 87f0fe1394
5 changed files with 74 additions and 24 deletions
+38 -10
View File
@@ -85,24 +85,24 @@ func ParseIPv4(dst net.IP, ipStr []byte) (net.IP, error) {
if n < 0 {
return dst, fmt.Errorf("cannot find dot in ipStr %q", ipStr)
}
v, err := ParseUint(b[:n])
octet, parsed, err := parseIPv4Octet(b[:n])
if err != nil {
if errors.Is(err, errIPv4PartTooLarge) {
return dst, fmt.Errorf("cannot parse ipStr %q: ip part cannot exceed 255: parsed %d", ipStr, parsed)
}
return dst, fmt.Errorf("cannot parse ipStr %q: %w", ipStr, err)
}
if v > 255 {
return dst, fmt.Errorf("cannot parse ipStr %q: ip part cannot exceed 255: parsed %d", ipStr, v)
}
dst[i] = byte(v)
dst[i] = octet
b = b[n+1:]
}
v, err := ParseUint(b)
octet, parsed, err := parseIPv4Octet(b)
if err != nil {
if errors.Is(err, errIPv4PartTooLarge) {
return dst, fmt.Errorf("cannot parse ipStr %q: ip part cannot exceed 255: parsed %d", ipStr, parsed)
}
return dst, fmt.Errorf("cannot parse ipStr %q: %w", ipStr, err)
}
if v > 255 {
return dst, fmt.Errorf("cannot parse ipStr %q: ip part cannot exceed 255: parsed %d", ipStr, v)
}
dst[3] = byte(v)
dst[3] = octet
return dst, nil
}
@@ -141,6 +141,7 @@ func ParseUint(buf []byte) (int, error) {
var (
errEmptyInt = errors.New("empty integer")
errIPv4PartTooLarge = errors.New("ip part cannot exceed 255")
errUnexpectedFirstChar = errors.New("unexpected first char found. Expecting 0-9")
errUnexpectedTrailingChar = errors.New("unexpected trailing char found. Expecting 0-9")
errTooLongInt = errors.New("too long int")
@@ -171,6 +172,33 @@ func parseUintBuf(b []byte) (int, int, error) {
return v, n, nil
}
func parseIPv4Octet(b []byte) (byte, int, error) {
if len(b) == 0 {
return 0, 0, errEmptyInt
}
var (
octet byte
parsed int
)
for i := range len(b) {
c := b[i]
k := c - '0'
if k > 9 {
if i == 0 {
return 0, parsed, errUnexpectedFirstChar
}
return 0, parsed, errUnexpectedTrailingChar
}
parsed = parsed*10 + int(k)
if octet > 25 || (octet == 25 && k > 5) {
return 0, parsed, errIPv4PartTooLarge
}
octet = octet*10 + k
}
return octet, parsed, nil
}
// ParseUfloat parses unsigned float from buf.
func ParseUfloat(buf []byte) (float64, error) {
// The implementation of parsing a float string is not easy.