summaryrefslogtreecommitdiffhomepage
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/sentry/strace/linux64.go2
-rw-r--r--pkg/sentry/strace/strace.go2
-rw-r--r--pkg/sentry/strace/syscalls.go4
3 files changed, 7 insertions, 1 deletions
diff --git a/pkg/sentry/strace/linux64.go b/pkg/sentry/strace/linux64.go
index 90ea8c36f..85e1e1f83 100644
--- a/pkg/sentry/strace/linux64.go
+++ b/pkg/sentry/strace/linux64.go
@@ -96,7 +96,7 @@ var linuxAMD64 = SyscallMap{
76: makeSyscallInfo("truncate", Path, Hex),
77: makeSyscallInfo("ftruncate", Hex, Hex),
78: makeSyscallInfo("getdents", Hex, Hex, Hex),
- 79: makeSyscallInfo("getcwd", Hex, Hex),
+ 79: makeSyscallInfo("getcwd", PostPath, Hex),
80: makeSyscallInfo("chdir", Path),
81: makeSyscallInfo("fchdir", Hex),
82: makeSyscallInfo("rename", Path, Path),
diff --git a/pkg/sentry/strace/strace.go b/pkg/sentry/strace/strace.go
index 4cd16d2f8..03b4a350a 100644
--- a/pkg/sentry/strace/strace.go
+++ b/pkg/sentry/strace/strace.go
@@ -346,6 +346,8 @@ func (i *SyscallInfo) post(t *kernel.Task, args arch.SyscallArguments, rval uint
output[arg] = msghdr(t, args[arg].Pointer(), false /* content */, uint64(maximumBlobSize))
case RecvMsgHdr:
output[arg] = msghdr(t, args[arg].Pointer(), true /* content */, uint64(maximumBlobSize))
+ case PostPath:
+ output[arg] = path(t, args[arg].Pointer())
case PipeFDs:
output[arg] = fdpair(t, args[arg].Pointer())
case Uname:
diff --git a/pkg/sentry/strace/syscalls.go b/pkg/sentry/strace/syscalls.go
index eccee733e..4513d1ba6 100644
--- a/pkg/sentry/strace/syscalls.go
+++ b/pkg/sentry/strace/syscalls.go
@@ -75,6 +75,10 @@ const (
// Path is a pointer to a char* path.
Path
+ // PostPath is a pointer to a char* path, formatted after syscall
+ // execution.
+ PostPath
+
// ExecveStringVector is a NULL-terminated array of strings. Enforces
// the maximum execve array length.
ExecveStringVector