@cryptotaxi247 / kubo / commits / 520640840

check type assertion

`v.([]byte)` coming from a datastore can panic. `byt, ok := v.([]byte)` to be safe. @whyrusleeping

Juan Batiz-Benet committed Sep 16, 2014 at 02:26 UTC 520640840f938256c8f213131d84dc9de3183d48
1 file changed +6 -1
routing/dht/dht.go
+6 -1
@@ -280,7 +280,12 @@ func (dht *IpfsDHT) getLocal(key u.Key) ([]byte, error) {
280 if err != nil {
281 return nil, err
282 }
283 - return v.([]byte), nil
283 +
284 + byt, ok := v.([]byte)
285 + if !ok {
286 + return byt, errors.New("value stored in datastore not []byte")
287 + }
288 + return byt, nil
289 }
290
291 func (dht *IpfsDHT) putLocal(key u.Key, value []byte) error {