From a3b23cc77e89c4d438e6fc78b0864218976fae99 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Wed, 22 Feb 2023 14:25:22 +0100 Subject: [PATCH] unix: use SYS_PTRACE in generated ptracePtr CL 469835 broke the syscall wrapper generation on linux and freebsd by generating a wrapper for the inexistent SYS_PTRACE_PTR syscall. The ptracePtr added by CL 469835 correctly uses SYS_PTRACE, likely because it was manually edited in that CL. However, the incorrect SYS_PTRACE_PTR syscall is used when regenerating the syscall wrappers. Change-Id: I270d66511f926d30a9d347930e977a026e033998 Reviewed-on: https://go-review.googlesource.com/c/sys/+/470175 Reviewed-by: Than McIntosh Reviewed-by: Bryan Mills Auto-Submit: Tobias Klauser Run-TryBot: Tobias Klauser TryBot-Result: Gopher Robot --- unix/syscall_freebsd.go | 2 +- unix/syscall_linux.go | 2 +- unix/zsyscall_linux.go | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/unix/syscall_freebsd.go b/unix/syscall_freebsd.go index b19f3998..11ab2871 100644 --- a/unix/syscall_freebsd.go +++ b/unix/syscall_freebsd.go @@ -254,7 +254,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e } //sys ptrace(request int, pid int, addr uintptr, data int) (err error) -//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) +//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index fc5ed71b..448c39bd 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -1579,7 +1579,7 @@ func BindToDevice(fd int, device string) (err error) { } //sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) -//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) +//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { // The peek requests are machine-size oriented, so we wrap it diff --git a/unix/zsyscall_linux.go b/unix/zsyscall_linux.go index 1b3b57eb..430cb24d 100644 --- a/unix/zsyscall_linux.go +++ b/unix/zsyscall_linux.go @@ -377,8 +377,10 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { return } +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { - _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) if e1 != 0 { err = errnoErr(e1) }