Commit f6679004 authored by Aaron Jacobs's avatar Aaron Jacobs

RenameOp

parent 88036b92
...@@ -176,13 +176,30 @@ func Convert( ...@@ -176,13 +176,30 @@ func Convert(
io = to io = to
co = &to.commonOp co = &to.commonOp
case *fuseshim.RenameRequest: case fusekernel.OpRename:
in := (*fusekernel.RenameIn)(m.Data())
if m.Len() < unsafe.Sizeof(*in) {
goto corrupt
}
names := m.Bytes()[unsafe.Sizeof(*in):]
// names should be "old\x00new\x00"
if len(names) < 4 {
goto corrupt
}
if names[len(names)-1] != '\x00' {
goto corrupt
}
i := bytes.IndexByte(names, '\x00')
if i < 0 {
goto corrupt
}
oldName, newName := names[:i], names[i+1:len(names)-1]
to := &RenameOp{ to := &RenameOp{
bfReq: typed, OldParent: InodeID(m.Header().Node),
OldParent: InodeID(typed.Header.Node), OldName: string(oldName),
OldName: typed.OldName, NewParent: InodeID(in.Newdir),
NewParent: InodeID(typed.NewDir), NewName: string(newName),
NewName: typed.NewName,
} }
io = to io = to
co = &to.commonOp co = &to.commonOp
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment