return error in case of string-to-int overflows (#1776)

This commit is contained in:
Alessandro Ros 2023-05-08 13:12:47 +02:00 committed by GitHub
parent 9ac2a05d58
commit 7aa163366f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 19 deletions

View File

@ -36,7 +36,7 @@ func loadEnvInternal(env map[string]string, prefix string, rv reflect.Value) err
case reflect.TypeOf(int(0)): case reflect.TypeOf(int(0)):
if ev, ok := env[prefix]; ok { if ev, ok := env[prefix]; ok {
iv, err := strconv.ParseInt(ev, 10, 64) iv, err := strconv.ParseInt(ev, 10, 32)
if err != nil { if err != nil {
return fmt.Errorf("%s: %s", prefix, err) return fmt.Errorf("%s: %s", prefix, err)
} }
@ -46,7 +46,7 @@ func loadEnvInternal(env map[string]string, prefix string, rv reflect.Value) err
case reflect.TypeOf(uint64(0)): case reflect.TypeOf(uint64(0)):
if ev, ok := env[prefix]; ok { if ev, ok := env[prefix]; ok {
iv, err := strconv.ParseUint(ev, 10, 64) iv, err := strconv.ParseUint(ev, 10, 32)
if err != nil { if err != nil {
return fmt.Errorf("%s: %s", prefix, err) return fmt.Errorf("%s: %s", prefix, err)
} }

View File

@ -137,6 +137,6 @@ func (c *container) wait() int {
exec.Command("docker", "wait", "mediamtx-test-"+c.name).Run() exec.Command("docker", "wait", "mediamtx-test-"+c.name).Run()
out, _ := exec.Command("docker", "inspect", "mediamtx-test-"+c.name, out, _ := exec.Command("docker", "inspect", "mediamtx-test-"+c.name,
"-f", "{{.State.ExitCode}}").Output() "-f", "{{.State.ExitCode}}").Output()
code, _ := strconv.ParseInt(string(out[:len(out)-1]), 10, 64) code, _ := strconv.ParseInt(string(out[:len(out)-1]), 10, 32)
return int(code) return int(code)
} }

View File

@ -1,3 +1,17 @@
LBITS := $(shell getconf LONG_BIT)
ifeq ($(LBITS),64)
RACE=-race
endif
test-internal:
go test -v $(RACE) -coverprofile=coverage-internal.txt \
$$(go list ./internal/... | grep -v /core)
test-core:
go test -v $(RACE) -coverprofile=coverage-core.txt ./internal/core
test-nodocker: test-internal test-core
define DOCKERFILE_TEST define DOCKERFILE_TEST
ARG ARCH ARG ARCH
FROM $$ARCH/$(BASE_IMAGE) FROM $$ARCH/$(BASE_IMAGE)
@ -13,25 +27,11 @@ test:
docker run --rm \ docker run --rm \
-v $(PWD):/s \ -v $(PWD):/s \
temp \ temp \
make test-nodocker COVERAGE=1 make test-nodocker
test32: test32:
echo "$$DOCKERFILE_TEST" | docker build -q . -f - -t temp --build-arg ARCH=i386 echo "$$DOCKERFILE_TEST" | docker build -q . -f - -t temp --build-arg ARCH=i386
docker run --rm \ docker run --rm \
-v $(PWD):/s \ -v $(PWD):/s \
temp \ temp \
make test-nodocker COVERAGE=0 make test-nodocker
ifeq ($(COVERAGE),1)
TEST_INTERNAL_OPTS=-race -coverprofile=coverage-internal.txt
TEST_CORE_OPTS=-race -coverprofile=coverage-core.txt
endif
test-internal:
go test -v $(TEST_INTERNAL_OPTS) \
$$(go list ./internal/... | grep -v /core)
test-core:
go test -v $(TEST_CORE_OPTS) ./internal/core
test-nodocker: test-internal test-core