From c8bac7666cdc780a3390110e420350fffb62b909 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 1 Dec 2016 02:26:08 +0200 Subject: [PATCH] lib: seq_range_array_*(): Fix seq2=2^32-1 handling Adding/merging it when it already existed added duplicated seq_range. --- src/lib/seq-range-array.c | 2 +- src/lib/test-seq-range-array.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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(); } -- 2.47.3