summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/sentry/platform/ptrace/ptrace_unsafe.go6
-rw-r--r--pkg/sentry/platform/ptrace/subprocess.go2
2 files changed, 4 insertions, 4 deletions
diff --git a/pkg/sentry/platform/ptrace/ptrace_unsafe.go b/pkg/sentry/platform/ptrace/ptrace_unsafe.go
index 7a3cb8f49..223b23199 100644
--- a/pkg/sentry/platform/ptrace/ptrace_unsafe.go
+++ b/pkg/sentry/platform/ptrace/ptrace_unsafe.go
@@ -130,8 +130,8 @@ func (t *thread) getSignalInfo(si *arch.SignalInfo) error {
// call attach on it.
//
// Precondition: the OS thread must be locked and own t.
-func (t *thread) clone(initRegs *syscall.PtraceRegs) (*thread, error) {
- r, ok := usermem.Addr(initRegs.Rsp).RoundUp()
+func (t *thread) clone() (*thread, error) {
+ r, ok := usermem.Addr(t.initRegs.Rsp).RoundUp()
if !ok {
return nil, syscall.EINVAL
}
@@ -153,7 +153,7 @@ func (t *thread) clone(initRegs *syscall.PtraceRegs) (*thread, error) {
arch.SyscallArgument{},
// We use these registers initially, but really they
// could be anything. We're going to stop immediately.
- arch.SyscallArgument{Value: uintptr(unsafe.Pointer(initRegs))})
+ arch.SyscallArgument{Value: uintptr(unsafe.Pointer(&t.initRegs))})
if err != nil {
return nil, err
}
diff --git a/pkg/sentry/platform/ptrace/subprocess.go b/pkg/sentry/platform/ptrace/subprocess.go
index 2cd49d1ec..5e56a1514 100644
--- a/pkg/sentry/platform/ptrace/subprocess.go
+++ b/pkg/sentry/platform/ptrace/subprocess.go
@@ -160,7 +160,7 @@ func newSubprocess(create func() (*thread, error)) (*subprocess, error) {
// Wait for requests to create threads.
for r := range requests {
- t, err := firstThread.clone(&firstThread.initRegs)
+ t, err := firstThread.clone()
if err != nil {
// Should not happen: not recoverable.
panic(fmt.Sprintf("error initializing first thread: %v", err))