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 <bircni@icloud.com>
Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
silverwind
2026-07-22 19:01:06 +00:00
committed by bircni
parent c43cbe87ca
commit 6133d64270

View File

@@ -12,5 +12,5 @@ func freeDiskBytes(path string) (uint64, error) {
if err := unix.Statfs(path, &stat); err != nil { if err := unix.Statfs(path, &stat); err != nil {
return 0, err 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
} }