Skip to content

Commit

Permalink
lib: seq_range_array_*(): Fix seq2=2^32-1 handling
Browse files Browse the repository at this point in the history
Adding/merging it when it already existed added duplicated seq_range.
  • Loading branch information
sirainen committed Dec 3, 2016
1 parent ec4fad7 commit e7ffdd7
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/lib/seq-range-array.c
Expand Up @@ -163,7 +163,7 @@ seq_range_array_add_range_internal(ARRAY_TYPE(seq_range) *array,
idx1--;

if (idx1 == idx2 &&
(idx2 == count || data[idx2].seq1 > seq2+1) &&
(idx2 == count || (seq2 < (uint32_t)-1 && data[idx2].seq1 > seq2+1)) &&
(idx1 == 0 || data[idx1-1].seq2 < seq1-1)) {
/* no overlapping */
value.seq1 = seq1;
Expand Down
5 changes: 5 additions & 0 deletions src/lib/test-seq-range-array.c
Expand Up @@ -50,6 +50,11 @@ static void test_seq_range_array_add_merge(void)
seq_range_array_add(&range, 1);
seq_range_array_add(&range, 2);
test_assert(array_count(&range) == 2);

seq_range_array_add_range(&range, 1, (uint32_t)-1);
test_assert(array_count(&range) == 1);
seq_range_array_add_range(&range, 1, (uint32_t)-1);
test_assert(array_count(&range) == 1);
test_end();
}

Expand Down

0 comments on commit e7ffdd7

Please sign in to comment.