mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-21 14:04:06 +01:00
Merge pull request #1324 from Roasbeef/fix-routing-hint-panic
rpc: ensure we don't attempt to create a routing hint with a nil edge
This commit is contained in:
commit
3cb24e57cc
1 changed files with 9 additions and 3 deletions
12
rpcserver.go
12
rpcserver.go
|
@ -2321,7 +2321,7 @@ func (r *rpcServer) AddInvoice(ctx context.Context,
|
|||
|
||||
// Fetch the policies for each end of the channel.
|
||||
chanID := channel.ShortChanID().ToUint64()
|
||||
_, p1, p2, err := graph.FetchChannelEdgesByID(chanID)
|
||||
info, p1, p2, err := graph.FetchChannelEdgesByID(chanID)
|
||||
if err != nil {
|
||||
rpcsLog.Errorf("Unable to fetch the routing "+
|
||||
"policies for the edges of the channel "+
|
||||
|
@ -2332,14 +2332,20 @@ func (r *rpcServer) AddInvoice(ctx context.Context,
|
|||
// Now, we'll need to determine which is the correct
|
||||
// policy for HTLCs being sent from the remote node.
|
||||
var remotePolicy *channeldb.ChannelEdgePolicy
|
||||
|
||||
remotePub := channel.IdentityPub.SerializeCompressed()
|
||||
if bytes.Equal(remotePub, p1.Node.PubKeyBytes[:]) {
|
||||
if bytes.Equal(remotePub, info.NodeKey1Bytes[:]) {
|
||||
remotePolicy = p1
|
||||
} else {
|
||||
remotePolicy = p2
|
||||
}
|
||||
|
||||
// If for some reason we don't yet have the edge for
|
||||
// the remote party, then we'll just skip adding this
|
||||
// channel as a routing hint.
|
||||
if remotePolicy == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
// Finally, create the routing hint for this channel and
|
||||
// add it to our list of route hints.
|
||||
hint := routing.HopHint{
|
||||
|
|
Loading…
Add table
Reference in a new issue