Fixed a bunch more.
parent
64f4827424
commit
eb177d5cf4
|
@ -125,13 +125,13 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpMkdir:
|
case fusekernel.OpMkdir:
|
||||||
size := fusekernel.MkdirInSize(protocol)
|
in := (*fusekernel.MkdirIn)(m.Consume(fusekernel.MkdirInSize(protocol)))
|
||||||
if m.Len() < size {
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpMkdir")
|
err = errors.New("Corrupt OpMkdir")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
in := (*fusekernel.MkdirIn)(m.Data())
|
|
||||||
name := m.Bytes()[size:]
|
name := m.ConsumeBytes(m.Len())
|
||||||
i := bytes.IndexByte(name, '\x00')
|
i := bytes.IndexByte(name, '\x00')
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
err = errors.New("Corrupt OpMkdir")
|
err = errors.New("Corrupt OpMkdir")
|
||||||
|
@ -157,13 +157,13 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpCreate:
|
case fusekernel.OpCreate:
|
||||||
size := fusekernel.CreateInSize(protocol)
|
in := (*fusekernel.MkdirIn)(m.Consume(fusekernel.CreateInSize(protocol)))
|
||||||
if m.Len() < size {
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpCreate")
|
err = errors.New("Corrupt OpMkdir")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
in := (*fusekernel.CreateIn)(m.Data())
|
|
||||||
name := m.Bytes()[size:]
|
name := m.ConsumeBytes(m.Len())
|
||||||
i := bytes.IndexByte(name, '\x00')
|
i := bytes.IndexByte(name, '\x00')
|
||||||
if i < 0 {
|
if i < 0 {
|
||||||
err = errors.New("Corrupt OpCreate")
|
err = errors.New("Corrupt OpCreate")
|
||||||
|
@ -181,8 +181,8 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpSymlink:
|
case fusekernel.OpSymlink:
|
||||||
// m.Bytes() is "newName\0target\0"
|
// The message is "newName\0target\0".
|
||||||
names := m.Bytes()
|
names := m.ConsumeBytes(m.Len())
|
||||||
if len(names) == 0 || names[len(names)-1] != 0 {
|
if len(names) == 0 || names[len(names)-1] != 0 {
|
||||||
err = errors.New("Corrupt OpSymlink")
|
err = errors.New("Corrupt OpSymlink")
|
||||||
return
|
return
|
||||||
|
@ -204,12 +204,14 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpRename:
|
case fusekernel.OpRename:
|
||||||
in := (*fusekernel.RenameIn)(m.Data())
|
type input fusekernel.RenameIn
|
||||||
if m.Len() < unsafe.Sizeof(*in) {
|
in := (*input)(m.Consume(unsafe.Sizeof(input{})))
|
||||||
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpRename")
|
err = errors.New("Corrupt OpRename")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
names := m.Bytes()[unsafe.Sizeof(*in):]
|
|
||||||
|
names := m.ConsumeBytes(m.Len())
|
||||||
// names should be "old\x00new\x00"
|
// names should be "old\x00new\x00"
|
||||||
if len(names) < 4 {
|
if len(names) < 4 {
|
||||||
err = errors.New("Corrupt OpRename")
|
err = errors.New("Corrupt OpRename")
|
||||||
|
@ -236,7 +238,7 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpUnlink:
|
case fusekernel.OpUnlink:
|
||||||
buf := m.Bytes()
|
buf := m.ConsumeBytes(m.Len())
|
||||||
n := len(buf)
|
n := len(buf)
|
||||||
if n == 0 || buf[n-1] != '\x00' {
|
if n == 0 || buf[n-1] != '\x00' {
|
||||||
err = errors.New("Corrupt OpUnlink")
|
err = errors.New("Corrupt OpUnlink")
|
||||||
|
@ -251,7 +253,7 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpRmdir:
|
case fusekernel.OpRmdir:
|
||||||
buf := m.Bytes()
|
buf := m.ConsumeBytes(m.Len())
|
||||||
n := len(buf)
|
n := len(buf)
|
||||||
if n == 0 || buf[n-1] != '\x00' {
|
if n == 0 || buf[n-1] != '\x00' {
|
||||||
err = errors.New("Corrupt OpRmdir")
|
err = errors.New("Corrupt OpRmdir")
|
||||||
|
@ -280,8 +282,9 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpRead:
|
case fusekernel.OpRead:
|
||||||
in := (*fusekernel.ReadIn)(m.Data())
|
type input fusekernel.ReadIn
|
||||||
if m.Len() < fusekernel.ReadInSize(protocol) {
|
in := (*input)(m.Consume(unsafe.Sizeof(input{})))
|
||||||
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpRead")
|
err = errors.New("Corrupt OpRead")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -296,8 +299,9 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpReaddir:
|
case fusekernel.OpReaddir:
|
||||||
in := (*fusekernel.ReadIn)(m.Data())
|
type input fusekernel.ReadIn
|
||||||
if m.Len() < fusekernel.ReadInSize(protocol) {
|
in := (*input)(m.Consume(unsafe.Sizeof(input{})))
|
||||||
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpReaddir")
|
err = errors.New("Corrupt OpReaddir")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -312,8 +316,9 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpRelease:
|
case fusekernel.OpRelease:
|
||||||
in := (*fusekernel.ReleaseIn)(m.Data())
|
type input fusekernel.ReleaseIn
|
||||||
if m.Len() < unsafe.Sizeof(*in) {
|
in := (*input)(m.Consume(unsafe.Sizeof(input{})))
|
||||||
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpRelease")
|
err = errors.New("Corrupt OpRelease")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -325,8 +330,9 @@ func Convert(
|
||||||
co = &to.commonOp
|
co = &to.commonOp
|
||||||
|
|
||||||
case fusekernel.OpReleasedir:
|
case fusekernel.OpReleasedir:
|
||||||
in := (*fusekernel.ReleaseIn)(m.Data())
|
type input fusekernel.ReleaseIn
|
||||||
if m.Len() < unsafe.Sizeof(*in) {
|
in := (*input)(m.Consume(unsafe.Sizeof(input{})))
|
||||||
|
if in == nil {
|
||||||
err = errors.New("Corrupt OpReleasedir")
|
err = errors.New("Corrupt OpReleasedir")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue