diff --git a/src/lib/seq-range-array.c b/src/lib/seq-range-array.c index 5f23204d2f..c29555adbc 100644 --- a/src/lib/seq-range-array.c +++ b/src/lib/seq-range-array.c @@ -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; diff --git a/src/lib/test-seq-range-array.c b/src/lib/test-seq-range-array.c index b66519c8a3..9ac890675e 100644 --- a/src/lib/test-seq-range-array.c +++ b/src/lib/test-seq-range-array.c @@ -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(); }