summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/abi/linux/socket.go4
-rw-r--r--pkg/sentry/fs/host/util_unsafe.go5
2 files changed, 8 insertions, 1 deletions
diff --git a/pkg/abi/linux/socket.go b/pkg/abi/linux/socket.go
index 9a78cc131..19b5fa212 100644
--- a/pkg/abi/linux/socket.go
+++ b/pkg/abi/linux/socket.go
@@ -140,6 +140,10 @@ const (
SO_TYPE = 3
)
+// SockAddrMax is the maximum size of a struct sockaddr, from
+// uapi/linux/socket.h.
+const SockAddrMax = 128
+
// SockAddrInt is struct sockaddr_in, from uapi/linux/in.h.
type SockAddrInet struct {
Family uint16
diff --git a/pkg/sentry/fs/host/util_unsafe.go b/pkg/sentry/fs/host/util_unsafe.go
index c38d2392d..2ecb54319 100644
--- a/pkg/sentry/fs/host/util_unsafe.go
+++ b/pkg/sentry/fs/host/util_unsafe.go
@@ -23,6 +23,9 @@ import (
ktime "gvisor.googlesource.com/gvisor/pkg/sentry/kernel/time"
)
+// NulByte is a single NUL byte. It is passed to readlinkat as an empty string.
+var NulByte byte = '\x00'
+
func createLink(fd int, name string, linkName string) error {
namePtr, err := syscall.BytePtrFromString(name)
if err != nil {
@@ -50,7 +53,7 @@ func readLink(fd int) (string, error) {
n, _, errno := syscall.Syscall6(
syscall.SYS_READLINKAT,
uintptr(fd),
- uintptr(unsafe.Pointer(syscall.StringBytePtr(""))),
+ uintptr(unsafe.Pointer(&NulByte)), // ""
uintptr(unsafe.Pointer(&b[0])),
uintptr(l),
0, 0)