lib/db: Don't ignore failures unmarshaling version lists (#6411)

This commit is contained in:
Simon Frei
2020-03-16 10:09:27 +01:00
committed by GitHub
parent a1cb1d70c4
commit 1bd4ea0cbb
2 changed files with 17 additions and 28 deletions
+12 -12
View File
@@ -133,9 +133,9 @@ func (t readOnlyTransaction) getGlobal(keyBuf, folder, file []byte, truncate boo
return nil, nil, false, err
}
vl, ok := unmarshalVersionList(bs)
if !ok {
return keyBuf, nil, false, nil
var vl VersionList
if err := vl.Unmarshal(bs); err != nil {
return nil, nil, false, err
}
keyBuf, err = t.keyer.GenerateDeviceFileKey(keyBuf, folder, vl.Versions[0].Device, file)
@@ -268,9 +268,9 @@ func (t *readOnlyTransaction) withGlobal(folder, prefix []byte, truncate bool, f
return nil
}
vl, ok := unmarshalVersionList(dbi.Value())
if !ok {
continue
var vl VersionList
if err := vl.Unmarshal(dbi.Value()); err != nil {
return err
}
dk, err = t.keyer.GenerateDeviceFileKey(dk, folder, vl.Versions[0].Device, name)
@@ -309,9 +309,9 @@ func (t *readOnlyTransaction) availability(folder, file []byte) ([]protocol.Devi
return nil, err
}
vl, ok := unmarshalVersionList(bs)
if !ok {
return nil, nil
var vl VersionList
if err := vl.Unmarshal(bs); err != nil {
return nil, err
}
var devices []protocol.DeviceID
@@ -347,9 +347,9 @@ func (t *readOnlyTransaction) withNeed(folder, device []byte, truncate bool, fn
var dk []byte
devID := protocol.DeviceIDFromBytes(device)
for dbi.Next() {
vl, ok := unmarshalVersionList(dbi.Value())
if !ok {
continue
var vl VersionList
if err := vl.Unmarshal(dbi.Value()); err != nil {
return err
}
haveFV, have := vl.Get(device)