Skip to content

Commit

Permalink
included feedback by Rusty to check the max_concurrent_htlc value for…
Browse files Browse the repository at this point in the history
… both peers of a channel
  • Loading branch information
renepickhardt authored and rustyrussell committed Aug 9, 2019
1 parent e3af9d3 commit e524093
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion channeld/full_channel.c
Expand Up @@ -367,6 +367,7 @@ static enum channel_add_err add_htlc(struct channel *channel,
enum side sender = htlc_state_owner(state), recipient = !sender;
const struct htlc **committed, **adding, **removing;
const struct channel_view *view;
u32 min_concurrent_htlcs;

htlc = tal(tmpctx, struct htlc);

Expand Down Expand Up @@ -443,8 +444,16 @@ static enum channel_add_err add_htlc(struct channel *channel,
* HTLCs to its local commitment transaction...
* - SHOULD fail the channel.
*/
/* Also we should not add more htlc's than sender or recipient
* configured. This mitigates attacks in which a peer can force the
* funder of the channel to pay unnecessary onchain fees during a fee
* spike with large commitment transactions.
*/
min_concurrent_htlcs = channel->config[recipient].max_accepted_htlcs;
if (min_concurrent_htlcs > channel->config[sender].max_accepted_htlcs)
min_concurrent_htlcs = channel->config[sender].max_accepted_htlcs;
if (tal_count(committed) - tal_count(removing) + tal_count(adding)
> channel->config[recipient].max_accepted_htlcs) {
> min_concurrent_htlcs) {
return CHANNEL_ERR_TOO_MANY_HTLCS;
}

Expand Down

0 comments on commit e524093

Please sign in to comment.