commit 2bf4263800f4ee14e2e4cd4015b2b6c46c25c845 Author: Taylor Yu catalyst@torproject.org Date: Wed May 10 13:57:18 2017 -0400
Resurrect dead code in test_channelpadding.c
A for-loop in test_channelpadding_timers() would never run because it was trying to increment a counter up to CHANNELS_TO_TEST/3 after an earlier block already incremented it to CHANNELS_TO_TEST/2.
Fixes #22221, CID 1405983. --- src/test/test_channelpadding.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/test/test_channelpadding.c b/src/test/test_channelpadding.c index ae6abe4..0a70184 100644 --- a/src/test/test_channelpadding.c +++ b/src/test/test_channelpadding.c @@ -287,22 +287,22 @@ test_channelpadding_timers(void *arg) tt_int_op(tried_to_write_cell, OP_EQ, 0); }
- /* This loop should add timers to our existing lists in a weak - * pseudorandom pattern. It ensures that the lists can grow with multiple - * timers in them. */ - for (; i < CHANNELS_TO_TEST/2; i++) { - chans[i]->next_padding_time_ms = monotime_coarse_absolute_msec() + 10 + - i*3 % CHANNELPADDING_MAX_TIMERS; + /* This loop should add timers to the first position in the timerslot + * array, since its timeout is before all other timers. */ + for (; i < CHANNELS_TO_TEST/3; i++) { + chans[i]->next_padding_time_ms = monotime_coarse_absolute_msec() + 1; decision = channelpadding_decide_to_pad_channel(chans[i]); tt_int_op(decision, OP_EQ, CHANNELPADDING_PADDING_SCHEDULED); tt_assert(chans[i]->pending_padding_callback); tt_int_op(tried_to_write_cell, OP_EQ, 0); }
- /* This loop should add timers to the first position in the timerslot - * array, since its timeout is before all other timers. */ - for (; i < CHANNELS_TO_TEST/3; i++) { - chans[i]->next_padding_time_ms = monotime_coarse_absolute_msec() + 1; + /* This loop should add timers to our existing lists in a weak + * pseudorandom pattern. It ensures that the lists can grow with multiple + * timers in them. */ + for (; i < CHANNELS_TO_TEST/2; i++) { + chans[i]->next_padding_time_ms = monotime_coarse_absolute_msec() + 10 + + i*3 % CHANNELPADDING_MAX_TIMERS; decision = channelpadding_decide_to_pad_channel(chans[i]); tt_int_op(decision, OP_EQ, CHANNELPADDING_PADDING_SCHEDULED); tt_assert(chans[i]->pending_padding_callback);