geesefs-0-30-9
Aaron Jacobs 2015-07-24 08:07:22 +10:00
parent 88036b9232
commit f667900499
1 changed files with 23 additions and 6 deletions

View File

@ -176,13 +176,30 @@ func Convert(
io = to
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{
bfReq: typed,
OldParent: InodeID(typed.Header.Node),
OldName: typed.OldName,
NewParent: InodeID(typed.NewDir),
NewName: typed.NewName,
OldParent: InodeID(m.Header().Node),
OldName: string(oldName),
NewParent: InodeID(in.Newdir),
NewName: string(newName),
}
io = to
co = &to.commonOp