Handle unmarshal failures (#2624)

This commit is contained in:
Preston Van Loon
2019-05-17 11:12:17 -04:00
committed by Raul Jordan
parent 40fb4b01fa
commit dd734f23c3

View File

@@ -81,7 +81,8 @@ func newDB(dbPath string) *db {
for k, v := c.First(); k != nil; k, v = c.Next() { for k, v := c.First(); k != nil; k, v = c.Next() {
pks := &pb.PrivateKeys{} pks := &pb.PrivateKeys{}
if err := proto.Unmarshal(v, pks); err != nil { if err := proto.Unmarshal(v, pks); err != nil {
return err log.WithError(err).Error("Unable to unmarshal private key")
continue
} }
keys += len(pks.PrivateKeys) keys += len(pks.PrivateKeys)
} }
@@ -155,10 +156,13 @@ func (d *db) RemovePKAssignment(_ context.Context, podName string) error {
log.WithField("podName", podName).Warn("Nil private key returned from db") log.WithField("podName", podName).Warn("Nil private key returned from db")
return nil return nil
} }
pks := &pb.PrivateKeys{} pks := &pb.PrivateKeys{}
if err := proto.Unmarshal(data, pks); err != nil { if err := proto.Unmarshal(data, pks); err != nil {
return err log.WithError(err).Error("Failed to unmarshal pks, deleting from db")
return tx.Bucket(assignedPkBucket).Delete([]byte(podName))
} }
if err := tx.Bucket(assignedPkBucket).Delete([]byte(podName)); err != nil { if err := tx.Bucket(assignedPkBucket).Delete([]byte(podName)); err != nil {
return err return err
} }
@@ -287,7 +291,8 @@ func (d *db) RemovePKFromPod(podName string, key []byte) error {
} }
pks := &pb.PrivateKeys{} pks := &pb.PrivateKeys{}
if err := proto.Unmarshal(data, pks); err != nil { if err := proto.Unmarshal(data, pks); err != nil {
return err log.WithError(err).Error("Unable to unmarshal private keys, deleting assignment from db")
return tx.Bucket(assignedPkBucket).Delete([]byte(podName))
} }
found := false found := false
for i, k := range pks.PrivateKeys { for i, k := range pks.PrivateKeys {