diff --git a/fileutil/fileutil.go b/fileutil/fileutil.go index d652b6a..96f211a 100644 --- a/fileutil/fileutil.go +++ b/fileutil/fileutil.go @@ -1,10 +1,10 @@ //go:build !windows -// +build !windows // Package fileutil contains common file functions. package fileutil import ( + "math" "os" "golang.org/x/sys/unix" @@ -46,5 +46,9 @@ const ( // Access returns a boolean indicating whether the mode being checked // for is valid. func Access(path string, mode int) error { - return unix.Access(path, uint32(mode)) + // Validate the conversion to avoid potential integer overflow (gosec G115). + if mode < 0 || uint64(mode) > uint64(math.MaxUint32) { + return unix.EINVAL + } + return unix.Access(path, uint32(mode)) // #nosec G115 - handled above. } diff --git a/fileutil/fileutil_windows.go b/fileutil/fileutil_windows.go index d4efb3b..0ba5e24 100644 --- a/fileutil/fileutil_windows.go +++ b/fileutil/fileutil_windows.go @@ -1,5 +1,4 @@ //go:build windows -// +build windows // Package fileutil contains common file functions. package fileutil