From 4fd322165d0f2360540ee64e5059e784d94f120e Mon Sep 17 00:00:00 2001 From: Zeyad Yasser Date: Tue, 4 Feb 2025 17:23:58 +0200 Subject: [PATCH] osutil/chattr.go: avoid possible garbage collection of unsafe pointer (#15008) Documentation for `unsafe.Pointer` explicitly mentions that uintptr cannot be stored in variable before implicit conversion back to Pointer during system call. Signed-off-by: Zeyad Gouda --- osutil/chattr.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/osutil/chattr.go b/osutil/chattr.go index b6a010335a6..f66bc249117 100644 --- a/osutil/chattr.go +++ b/osutil/chattr.go @@ -54,8 +54,7 @@ const ( ) func ioctl(f *os.File, request uintptr, attrp *int32) error { - argp := uintptr(unsafe.Pointer(attrp)) - _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, f.Fd(), request, argp) + _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, f.Fd(), request, uintptr(unsafe.Pointer(attrp))) if errno != 0 { return os.NewSyscallError("ioctl", errno) }