@cryptotaxi247 / kubo / commits / 6e1c3b36b

fix(bitswap) check for nil in public interface

Brian Tiger Chow committed Sep 19, 2014 at 12:34 UTC 6e1c3b36bbcebf8d1478e6fed755afaf9d5b638a
1 file changed +11
exchange/bitswap/bitswap.go
+11
@@ -1,6 +1,8 @@
1 package bitswap
2
3 import (
4 + "errors"
5 +
6 context "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/go.net/context"
7 ds "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/datastore.go"
8
@@ -87,6 +89,9 @@ func (bs *bitswap) Block(parent context.Context, k u.Key) (*blocks.Block, error)
89 // get better guarantees. May need shared sequence numbers.
90 bs.strategy.MessageSent(p, message)
91
92 + if response == nil {
93 + return
94 + }
95 bs.ReceiveMessage(ctx, p, response)
96 }(i)
97 }
@@ -112,6 +117,12 @@ func (bs *bitswap) HasBlock(ctx context.Context, blk blocks.Block) error {
117 func (bs *bitswap) ReceiveMessage(
118 ctx context.Context, p *peer.Peer, incoming bsmsg.BitSwapMessage) (
119 *peer.Peer, bsmsg.BitSwapMessage, error) {
120 + if p == nil {
121 + return nil, nil, errors.New("Received nil Peer")
122 + }
123 + if incoming == nil {
124 + return nil, nil, errors.New("Received nil Message")
125 + }
126
127 bs.strategy.MessageReceived(p, incoming)
128