diff --git a/tools/utils/shm/shm.go b/tools/utils/shm/shm.go index eba95a6de..13cbf818b 100644 --- a/tools/utils/shm/shm.go +++ b/tools/utils/shm/shm.go @@ -92,7 +92,7 @@ func CreateTemp(pattern string, size uint64) (MMap, error) { return create_temp(pattern, size) } -func truncate_or_unlink(ans *os.File, size uint64) (err error) { +func truncate_or_unlink(ans *os.File, size uint64, unlink func(string) error) (err error) { fd := int(ans.Fd()) sz := int64(size) if err = Fallocate_simple(fd, sz); err != nil { @@ -106,8 +106,8 @@ func truncate_or_unlink(ans *os.File, size uint64) (err error) { } } if err != nil { - ans.Close() - os.Remove(ans.Name()) + _ = ans.Close() + _ = unlink(ans.Name()) return fmt.Errorf("Failed to ftruncate() SHM file %s to size: %d with error: %w", ans.Name(), size, err) } return diff --git a/tools/utils/shm/shm_fs.go b/tools/utils/shm/shm_fs.go index 358e3a781..729f817f2 100644 --- a/tools/utils/shm/shm_fs.go +++ b/tools/utils/shm/shm_fs.go @@ -30,7 +30,7 @@ type file_based_mmap struct { func file_mmap(f *os.File, size uint64, access AccessFlags, truncate bool, special_name string) (MMap, error) { if truncate { - err := truncate_or_unlink(f, size) + err := truncate_or_unlink(f, size, os.Remove) if err != nil { return nil, err } diff --git a/tools/utils/shm/shm_syscall.go b/tools/utils/shm/shm_syscall.go index 7922a7b1b..95408adb7 100644 --- a/tools/utils/shm/shm_syscall.go +++ b/tools/utils/shm/shm_syscall.go @@ -73,15 +73,15 @@ type syscall_based_mmap struct { func syscall_mmap(f *os.File, size uint64, access AccessFlags, truncate bool) (MMap, error) { if truncate { - err := truncate_or_unlink(f, size) + err := truncate_or_unlink(f, size, shm_unlink) if err != nil { return nil, fmt.Errorf("truncate failed with error: %w", err) } } region, err := mmap(int(size), access, int(f.Fd()), 0) if err != nil { - f.Close() - os.Remove(f.Name()) + _ = f.Close() + _ = shm_unlink(f.Name()) return nil, fmt.Errorf("mmap failed with error: %w", err) } return &syscall_based_mmap{f: f, region: region}, nil