Prevent crash on failed hop index out of range

pull/1/head
rkfg 2 years ago
parent e83f43935b
commit 440c6bd113

@ -45,6 +45,12 @@ func (r *regolancer) pay(ctx context.Context, invoice *lnrpc.AddInvoiceResponse,
return err
}
if result.Status == lnrpc.HTLCAttempt_FAILED {
if result.Failure.FailureSourceIndex >= uint32(len(route.Hops)) {
log.Printf(errColorF("%s (unexpected hop index %d, should be less than %d)", result.Failure.Code.String(),
result.Failure.FailureSourceIndex), len(route.Hops))
return fmt.Errorf("error: %s @ %d", result.Failure.Code.String(),
result.Failure.FailureSourceIndex)
}
nodeCtx, cancel := context.WithTimeout(ctx, time.Minute)
defer cancel()
node1, err := r.getNodeInfo(nodeCtx, route.Hops[result.Failure.FailureSourceIndex-1].PubKey)

Loading…
Cancel
Save