From 7aa163366fd2844b36a34996bb87e367bcb1a797 Mon Sep 17 00:00:00 2001 From: Alessandro Ros Date: Mon, 8 May 2023 13:12:47 +0200 Subject: [PATCH] return error in case of string-to-int overflows (#1776) --- internal/conf/env/env.go | 4 ++-- internal/highleveltests/tests_test.go | 2 +- scripts/test.mk | 32 +++++++++++++-------------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/internal/conf/env/env.go b/internal/conf/env/env.go index 4d93af57..eb54ff8c 100644 --- a/internal/conf/env/env.go +++ b/internal/conf/env/env.go @@ -36,7 +36,7 @@ func loadEnvInternal(env map[string]string, prefix string, rv reflect.Value) err case reflect.TypeOf(int(0)): if ev, ok := env[prefix]; ok { - iv, err := strconv.ParseInt(ev, 10, 64) + iv, err := strconv.ParseInt(ev, 10, 32) if err != nil { 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)): if ev, ok := env[prefix]; ok { - iv, err := strconv.ParseUint(ev, 10, 64) + iv, err := strconv.ParseUint(ev, 10, 32) if err != nil { return fmt.Errorf("%s: %s", prefix, err) } diff --git a/internal/highleveltests/tests_test.go b/internal/highleveltests/tests_test.go index ca7c89fe..3b1fc739 100644 --- a/internal/highleveltests/tests_test.go +++ b/internal/highleveltests/tests_test.go @@ -137,6 +137,6 @@ func (c *container) wait() int { exec.Command("docker", "wait", "mediamtx-test-"+c.name).Run() out, _ := exec.Command("docker", "inspect", "mediamtx-test-"+c.name, "-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) } diff --git a/scripts/test.mk b/scripts/test.mk index c43b87d1..ff8bc95a 100644 --- a/scripts/test.mk +++ b/scripts/test.mk @@ -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 ARG ARCH FROM $$ARCH/$(BASE_IMAGE) @@ -13,25 +27,11 @@ test: docker run --rm \ -v $(PWD):/s \ temp \ - make test-nodocker COVERAGE=1 + make test-nodocker test32: echo "$$DOCKERFILE_TEST" | docker build -q . -f - -t temp --build-arg ARCH=i386 docker run --rm \ -v $(PWD):/s \ temp \ - make test-nodocker COVERAGE=0 - -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 + make test-nodocker