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:
Moby von Briesen 2020-10-26 14:28:59 -04:00 committed by Maximillian von Briesen
parent 9adde49e1a
commit 2fbb4095b2
2 changed files with 12 additions and 11 deletions

View File

@ -94,7 +94,8 @@ func (of *fileV0) ReadOne() (info *Info, err error) {
limit := &pb.OrderLimit{}
err = pb.Unmarshal(limitSerialized, limit)
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[:])

View File

@ -176,11 +176,6 @@ func (of *fileV1) ReadOne() (info *Info, err error) {
if err != nil {
return nil, Error.Wrap(err)
}
limit := &pb.OrderLimit{}
err = pb.Unmarshal(limitSerialized, limit)
if err != nil {
return nil, Error.Wrap(err)
}
orderSizeBytes := [2]byte{}
_, err = io.ReadFull(of.br, orderSizeBytes[:])
@ -193,11 +188,6 @@ func (of *fileV1) ReadOne() (info *Info, err error) {
if err != nil {
return nil, Error.Wrap(err)
}
order := &pb.Order{}
err = pb.Unmarshal(orderSerialized, order)
if err != nil {
return nil, Error.Wrap(err)
}
// read checksum
checksumBytes := [4]byte{}
@ -226,6 +216,16 @@ func (of *fileV1) ReadOne() (info *Info, err error) {
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{
Limit: limit,
Order: order,