storagenode/orders/ordersfile: Handle remaining pb.Unmarshal errors
Missed one case of Unmarshal in the previous commit for V0 files (0f4e4969b7) In V1, unmarshalling was being attempted before the checksum was verified, so this commit moves those calls to the end of the V1 ReadOne function. Change-Id: Ic0b49f0bbc91fb61fb28af6003060994d0af22ed
This commit is contained in:
parent
9adde49e1a
commit
2fbb4095b2
@ -94,7 +94,8 @@ func (of *fileV0) ReadOne() (info *Info, err error) {
|
|||||||
limit := &pb.OrderLimit{}
|
limit := &pb.OrderLimit{}
|
||||||
err = pb.Unmarshal(limitSerialized, limit)
|
err = pb.Unmarshal(limitSerialized, limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, Error.Wrap(err)
|
// if there is an error unmarshalling, the file must be corrupt
|
||||||
|
return nil, ErrEntryCorrupt.Wrap(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = io.ReadFull(of.f, sizeBytes[:])
|
_, err = io.ReadFull(of.f, sizeBytes[:])
|
||||||
|
@ -176,11 +176,6 @@ func (of *fileV1) ReadOne() (info *Info, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, Error.Wrap(err)
|
return nil, Error.Wrap(err)
|
||||||
}
|
}
|
||||||
limit := &pb.OrderLimit{}
|
|
||||||
err = pb.Unmarshal(limitSerialized, limit)
|
|
||||||
if err != nil {
|
|
||||||
return nil, Error.Wrap(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
orderSizeBytes := [2]byte{}
|
orderSizeBytes := [2]byte{}
|
||||||
_, err = io.ReadFull(of.br, orderSizeBytes[:])
|
_, err = io.ReadFull(of.br, orderSizeBytes[:])
|
||||||
@ -193,11 +188,6 @@ func (of *fileV1) ReadOne() (info *Info, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, Error.Wrap(err)
|
return nil, Error.Wrap(err)
|
||||||
}
|
}
|
||||||
order := &pb.Order{}
|
|
||||||
err = pb.Unmarshal(orderSerialized, order)
|
|
||||||
if err != nil {
|
|
||||||
return nil, Error.Wrap(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// read checksum
|
// read checksum
|
||||||
checksumBytes := [4]byte{}
|
checksumBytes := [4]byte{}
|
||||||
@ -226,6 +216,16 @@ func (of *fileV1) ReadOne() (info *Info, err error) {
|
|||||||
return nil, Error.New("footer bytes do not match")
|
return nil, Error.New("footer bytes do not match")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
limit := &pb.OrderLimit{}
|
||||||
|
err = pb.Unmarshal(limitSerialized, limit)
|
||||||
|
if err != nil {
|
||||||
|
return nil, Error.Wrap(err)
|
||||||
|
}
|
||||||
|
order := &pb.Order{}
|
||||||
|
err = pb.Unmarshal(orderSerialized, order)
|
||||||
|
if err != nil {
|
||||||
|
return nil, Error.Wrap(err)
|
||||||
|
}
|
||||||
return &Info{
|
return &Info{
|
||||||
Limit: limit,
|
Limit: limit,
|
||||||
Order: order,
|
Order: order,
|
||||||
|
Loading…
Reference in New Issue
Block a user