summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--pkg/sentry/fs/fsutil/inode.go16
-rw-r--r--pkg/sentry/fs/inode.go2
-rw-r--r--pkg/sentry/fs/inode_operations.go4
-rw-r--r--pkg/sentry/fs/inode_overlay.go18
-rw-r--r--pkg/sentry/fs/inode_overlay_test.go6
-rw-r--r--pkg/sentry/fs/tmpfs/tmpfs.go4
6 files changed, 25 insertions, 25 deletions
diff --git a/pkg/sentry/fs/fsutil/inode.go b/pkg/sentry/fs/fsutil/inode.go
index c1ad45e52..2673d73d7 100644
--- a/pkg/sentry/fs/fsutil/inode.go
+++ b/pkg/sentry/fs/fsutil/inode.go
@@ -197,25 +197,25 @@ func (i *InodeSimpleAttributes) NotifyStatusChange(ctx context.Context) {
type InodeSimpleExtendedAttributes struct {
// mu protects xattrs.
mu sync.RWMutex `state:"nosave"`
- xattrs map[string][]byte
+ xattrs map[string]string
}
// Getxattr implements fs.InodeOperations.Getxattr.
-func (i *InodeSimpleExtendedAttributes) Getxattr(_ *fs.Inode, name string) ([]byte, error) {
+func (i *InodeSimpleExtendedAttributes) Getxattr(_ *fs.Inode, name string) (string, error) {
i.mu.RLock()
value, ok := i.xattrs[name]
i.mu.RUnlock()
if !ok {
- return nil, syserror.ENOATTR
+ return "", syserror.ENOATTR
}
return value, nil
}
// Setxattr implements fs.InodeOperations.Setxattr.
-func (i *InodeSimpleExtendedAttributes) Setxattr(_ *fs.Inode, name string, value []byte) error {
+func (i *InodeSimpleExtendedAttributes) Setxattr(_ *fs.Inode, name, value string) error {
i.mu.Lock()
if i.xattrs == nil {
- i.xattrs = make(map[string][]byte)
+ i.xattrs = make(map[string]string)
}
i.xattrs[name] = value
i.mu.Unlock()
@@ -424,12 +424,12 @@ func (InodeNotSymlink) Getlink(context.Context, *fs.Inode) (*fs.Dirent, error) {
type InodeNoExtendedAttributes struct{}
// Getxattr implements fs.InodeOperations.Getxattr.
-func (InodeNoExtendedAttributes) Getxattr(*fs.Inode, string) ([]byte, error) {
- return nil, syserror.EOPNOTSUPP
+func (InodeNoExtendedAttributes) Getxattr(*fs.Inode, string) (string, error) {
+ return "", syserror.EOPNOTSUPP
}
// Setxattr implements fs.InodeOperations.Setxattr.
-func (InodeNoExtendedAttributes) Setxattr(*fs.Inode, string, []byte) error {
+func (InodeNoExtendedAttributes) Setxattr(*fs.Inode, string, string) error {
return syserror.EOPNOTSUPP
}
diff --git a/pkg/sentry/fs/inode.go b/pkg/sentry/fs/inode.go
index b8b5c1528..d82f9740e 100644
--- a/pkg/sentry/fs/inode.go
+++ b/pkg/sentry/fs/inode.go
@@ -253,7 +253,7 @@ func (i *Inode) UnstableAttr(ctx context.Context) (UnstableAttr, error) {
}
// Getxattr calls i.InodeOperations.Getxattr with i as the Inode.
-func (i *Inode) Getxattr(name string) ([]byte, error) {
+func (i *Inode) Getxattr(name string) (string, error) {
if i.overlay != nil {
return overlayGetxattr(i.overlay, name)
}
diff --git a/pkg/sentry/fs/inode_operations.go b/pkg/sentry/fs/inode_operations.go
index e8b9ab96b..ceacc7659 100644
--- a/pkg/sentry/fs/inode_operations.go
+++ b/pkg/sentry/fs/inode_operations.go
@@ -174,11 +174,11 @@ type InodeOperations interface {
// do not support extended attributes return EOPNOTSUPP. Inodes that
// support extended attributes but don't have a value at name return
// ENODATA.
- Getxattr(inode *Inode, name string) ([]byte, error)
+ Getxattr(inode *Inode, name string) (string, error)
// Setxattr sets the value of extended attribute name. Inodes that
// do not support extended attributes return EOPNOTSUPP.
- Setxattr(inode *Inode, name string, value []byte) error
+ Setxattr(inode *Inode, name, value string) error
// Listxattr returns the set of all extended attributes names that
// have values. Inodes that do not support extended attributes return
diff --git a/pkg/sentry/fs/inode_overlay.go b/pkg/sentry/fs/inode_overlay.go
index 6e1dfecf9..254646176 100644
--- a/pkg/sentry/fs/inode_overlay.go
+++ b/pkg/sentry/fs/inode_overlay.go
@@ -25,12 +25,12 @@ import (
)
func overlayHasWhiteout(parent *Inode, name string) bool {
- buf, err := parent.Getxattr(XattrOverlayWhiteout(name))
- return err == nil && string(buf) == "y"
+ s, err := parent.Getxattr(XattrOverlayWhiteout(name))
+ return err == nil && s == "y"
}
func overlayCreateWhiteout(parent *Inode, name string) error {
- return parent.InodeOperations.Setxattr(parent, XattrOverlayWhiteout(name), []byte("y"))
+ return parent.InodeOperations.Setxattr(parent, XattrOverlayWhiteout(name), "y")
}
func overlayWriteOut(ctx context.Context, o *overlayEntry) error {
@@ -491,28 +491,28 @@ func overlayUnstableAttr(ctx context.Context, o *overlayEntry) (UnstableAttr, er
return attr, err
}
-func overlayGetxattr(o *overlayEntry, name string) ([]byte, error) {
+func overlayGetxattr(o *overlayEntry, name string) (string, error) {
// Hot path. This is how the overlay checks for whiteout files.
// Avoid defers.
var (
- b []byte
+ s string
err error
)
// Don't forward the value of the extended attribute if it would
// unexpectedly change the behavior of a wrapping overlay layer.
if strings.HasPrefix(XattrOverlayPrefix, name) {
- return nil, syserror.ENODATA
+ return "", syserror.ENODATA
}
o.copyMu.RLock()
if o.upper != nil {
- b, err = o.upper.Getxattr(name)
+ s, err = o.upper.Getxattr(name)
} else {
- b, err = o.lower.Getxattr(name)
+ s, err = o.lower.Getxattr(name)
}
o.copyMu.RUnlock()
- return b, err
+ return s, err
}
func overlayListxattr(o *overlayEntry) (map[string]struct{}, error) {
diff --git a/pkg/sentry/fs/inode_overlay_test.go b/pkg/sentry/fs/inode_overlay_test.go
index bc91be226..fa8accf6c 100644
--- a/pkg/sentry/fs/inode_overlay_test.go
+++ b/pkg/sentry/fs/inode_overlay_test.go
@@ -383,13 +383,13 @@ type dir struct {
}
// Getxattr implements InodeOperations.Getxattr.
-func (d *dir) Getxattr(inode *fs.Inode, name string) ([]byte, error) {
+func (d *dir) Getxattr(inode *fs.Inode, name string) (string, error) {
for _, n := range d.negative {
if name == fs.XattrOverlayWhiteout(n) {
- return []byte("y"), nil
+ return "y", nil
}
}
- return nil, syserror.ENOATTR
+ return "", syserror.ENOATTR
}
// GetFile implements InodeOperations.GetFile.
diff --git a/pkg/sentry/fs/tmpfs/tmpfs.go b/pkg/sentry/fs/tmpfs/tmpfs.go
index a1672a4d0..555692505 100644
--- a/pkg/sentry/fs/tmpfs/tmpfs.go
+++ b/pkg/sentry/fs/tmpfs/tmpfs.go
@@ -150,12 +150,12 @@ func (d *Dir) CreateFifo(ctx context.Context, dir *fs.Inode, name string, perms
}
// Getxattr implements fs.InodeOperations.Getxattr.
-func (d *Dir) Getxattr(i *fs.Inode, name string) ([]byte, error) {
+func (d *Dir) Getxattr(i *fs.Inode, name string) (string, error) {
return d.ramfsDir.Getxattr(i, name)
}
// Setxattr implements fs.InodeOperations.Setxattr.
-func (d *Dir) Setxattr(i *fs.Inode, name string, value []byte) error {
+func (d *Dir) Setxattr(i *fs.Inode, name, value string) error {
return d.ramfsDir.Setxattr(i, name, value)
}