channeldb: fix panic in query for nonexistent channel ID

This commit fixes a panic that would arise when the daemon attempts to
query for a channel that doesn’t currently exist. The bug was the
result of a typo which checked for the nil existence of the incorrect
variable.
This commit is contained in:
Olaoluwa Osuntokun 2017-01-22 14:28:28 -08:00
parent 8fd4d7ea6b
commit f623729b64
No known key found for this signature in database
GPG Key ID: 9CC5B105D03521A2
1 changed files with 6 additions and 6 deletions

View File

@ -1295,21 +1295,21 @@ func fetchEdges(edgeIndex *bolt.Bucket, edges *bolt.Bucket, nodes *bolt.Bucket,
chanID []byte, db *DB) (*ChannelEdge, *ChannelEdge, error) { chanID []byte, db *DB) (*ChannelEdge, *ChannelEdge, error) {
edgeInfo := edgeIndex.Get(chanID) edgeInfo := edgeIndex.Get(chanID)
if edgeIndex == nil { if edgeInfo == nil {
return nil, nil, ErrEdgeNotFound return nil, nil, ErrEdgeNotFound
} }
// The first node is contained within the first half of the // The first node is contained within the first half of the edge
// edge information. We only propgate the error here and below if it's // information. We only propagate the error here and below if it's
// something other than edge non-existance. // something other than edge non-existence.
node1Pub := edgeInfo[:33] node1Pub := edgeInfo[:33]
edge1, err := fetchChannelEdge(edges, chanID, node1Pub, nodes) edge1, err := fetchChannelEdge(edges, chanID, node1Pub, nodes)
if err != nil && err != ErrEdgeNotFound { if err != nil && err != ErrEdgeNotFound {
return nil, nil, err return nil, nil, err
} }
// As we may have a signle direction of the edge but not the other, // As we may have a single direction of the edge but not the other,
// only fill in the datbase pointers if the edge is found. // only fill in the database pointers if the edge is found.
if edge1 != nil { if edge1 != nil {
edge1.db = db edge1.db = db
edge1.Node.db = db edge1.Node.db = db