From 6133d64270edfa7c211d2f23c1677af95bf93290 Mon Sep 17 00:00:00 2001 From: silverwind Date: Wed, 22 Jul 2026 19:01:06 +0000 Subject: [PATCH] fix: repair free-disk-space build on FreeBSD (#1098) `Statfs_t.Bavail` is unsigned on Linux but signed on FreeBSD, so `Bavail * uint64(Bsize)` in `internal/app/run/disk_unix.go` fails to compile for the freebsd targets goreleaser cross-builds, breaking the nightly release (introduced in https://gitea.com/gitea/runner/pulls/1090). The `checks` workflow only builds for the host, so it never cross-compiles freebsd and stayed green. Casting both operands to `uint64` makes the arithmetic signedness-agnostic across all unix variants. Reviewed-on: https://gitea.com/gitea/runner/pulls/1098 Reviewed-by: bircni Co-authored-by: silverwind --- internal/app/run/disk_unix.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/app/run/disk_unix.go b/internal/app/run/disk_unix.go index 7c7294c8..1933bc27 100644 --- a/internal/app/run/disk_unix.go +++ b/internal/app/run/disk_unix.go @@ -12,5 +12,5 @@ func freeDiskBytes(path string) (uint64, error) { if err := unix.Statfs(path, &stat); err != nil { return 0, err } - return stat.Bavail * uint64(stat.Bsize), nil + return uint64(stat.Bavail) * uint64(stat.Bsize), nil //nolint:unconvert // Bavail/Bsize signedness differs by platform }