aboutsummaryrefslogtreecommitdiff
path: root/src/os/root_noopenat.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/root_noopenat.go')
-rw-r--r--src/os/root_noopenat.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/os/root_noopenat.go b/src/os/root_noopenat.go
index f0e1aa5131..4a4aa684af 100644
--- a/src/os/root_noopenat.go
+++ b/src/os/root_noopenat.go
@@ -166,3 +166,17 @@ func rootReadlink(r *Root, name string) (string, error) {
}
return name, nil
}
+
+func rootRename(r *Root, oldname, newname string) error {
+ if err := checkPathEscapesLstat(r, oldname); err != nil {
+ return &PathError{Op: "renameat", Path: oldname, Err: err}
+ }
+ if err := checkPathEscapesLstat(r, newname); err != nil {
+ return &PathError{Op: "renameat", Path: newname, Err: err}
+ }
+ err := Rename(joinPath(r.root.name, oldname), joinPath(r.root.name, newname))
+ if err != nil {
+ return &LinkError{"renameat", oldname, newname, underlyingError(err)}
+ }
+ return nil
+}