When removing a range, pass next range to calling function, which makes
authorJonathan Dieter <jdieter@gmail.com>
Tue, 18 Sep 2018 12:39:50 +0000 (13:39 +0100)
committerJonathan Dieter <jdieter@gmail.com>
Tue, 18 Sep 2018 12:39:50 +0000 (13:39 +0100)
coverity happy
(Coverity ID: 310898)

Signed-off-by: Jonathan Dieter <jdieter@gmail.com>
src/lib/dl/range.c

index 5875620b6d055154926ba7cc4ec57e6da10e49af..2e82824c288a0841d62e596ba2d60fb47111d99c 100644 (file)
@@ -61,12 +61,12 @@ static zckRangeItem *range_insert_new(zckCtx *zck, zckRangeItem *prev,
     return new;
 }
 
-static void range_remove(zckCtx *zck, zckRangeItem *range) {
-    if(range->prev)
-        range->prev->next = range->next;
+static zckRangeItem *range_remove(zckCtx *zck, zckRangeItem *range) {
+    zckRangeItem *next = range->next;
     if(range->next)
         range->next->prev = range->prev;
     free(range);
+    return next;
 }
 
 static void range_merge_combined(zckCtx *zck, zckRange *info) {
@@ -78,7 +78,7 @@ static void range_merge_combined(zckCtx *zck, zckRange *info) {
         if(ptr->next && ptr->end >= ptr->next->start-1) {
             if(ptr->end < ptr->next->end)
                 ptr->end = ptr->next->end;
-            range_remove(zck, ptr->next);
+            ptr->next = range_remove(zck, ptr->next);
             info->count -= 1;
         } else {
             ptr = ptr->next;