Pārlūkot izejas kodu

Merge pull request #62 from chenchun/fix

Fix AtomicPut panic if previous KVPair is not nil and key not exists in boltdb
Santhosh Manohar 9 gadi atpakaļ
vecāks
revīzija
1de5aa45ce
1 mainītis faili ar 3 papildinājumiem un 0 dzēšanām
  1. 3 0
      libnetwork/internal/kvstore/boltdb/boltdb.go

+ 3 - 0
libnetwork/internal/kvstore/boltdb/boltdb.go

@@ -257,6 +257,9 @@ func (b *BoltDB) AtomicPut(key string, value []byte, previous *store.KVPair, opt
 			return store.ErrKeyModified
 			return store.ErrKeyModified
 		}
 		}
 		if previous != nil {
 		if previous != nil {
+			if len(val) == 0 {
+				return store.ErrKeyNotFound
+			}
 			dbIndex = binary.LittleEndian.Uint64(val[:libkvmetadatalen])
 			dbIndex = binary.LittleEndian.Uint64(val[:libkvmetadatalen])
 			if dbIndex != previous.LastIndex {
 			if dbIndex != previous.LastIndex {
 				return store.ErrKeyModified
 				return store.ErrKeyModified