]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
Tests: Fix memory leaks in test_index.
authorJia Tan <jiat0218@gmail.com>
Wed, 28 Jun 2023 12:46:31 +0000 (20:46 +0800)
committerJia Tan <jiat0218@gmail.com>
Wed, 28 Jun 2023 16:07:16 +0000 (00:07 +0800)
Several tests were missing calls to lzma_index_end() to clean up the
lzma_index structs. The memory leaks were discovered by using
-fsanitize=address with GCC.

tests/test_index.c

index b8efebcbb6c180742eeea87972a3c49c10d1b61a..168e919fa7c8c5f58d2dbbf514ba1b3ed70107bb 100644 (file)
@@ -648,6 +648,8 @@ test_lzma_index_iter_init(void)
        assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
        assert_false(lzma_index_iter_next(&iter, LZMA_INDEX_ITER_STREAM));
        assert_uint_eq(iter.stream.number, 3);
+
+       lzma_index_end(first, NULL);
 }
 
 
@@ -1157,6 +1159,9 @@ test_lzma_index_cat(void)
        assert_lzma_ret(lzma_index_cat(dest, src, NULL), LZMA_DATA_ERROR);
 
        // Check for compressed size overflow
+       lzma_index_end(src, NULL);
+       lzma_index_end(dest, NULL);
+
        dest = lzma_index_init(NULL);
        assert_true(dest != NULL);
 
@@ -1297,6 +1302,7 @@ test_lzma_index_dup(void)
        assert_true(copy != NULL);
        assert_true(index_is_equal(idx, copy));
 
+       lzma_index_end(copy, NULL);
        lzma_index_end(idx, NULL);
 }
 
@@ -1428,6 +1434,7 @@ test_lzma_index_encoder(void)
 
        verify_index_buffer(idx, buffer, buffer_size);
 
+       lzma_index_end(idx, NULL);
        lzma_end(&strm);
 #endif
 }
@@ -1589,6 +1596,8 @@ test_lzma_index_buffer_encode(void)
 
        // Validate results
        verify_index_buffer(idx, buffer, buffer_size);
+
+       lzma_index_end(idx, NULL);
 #endif
 }
 
@@ -1639,6 +1648,8 @@ test_lzma_index_buffer_decode(void)
 
        assert_true(index_is_equal(decode_test_index, idx));
 
+       lzma_index_end(idx, NULL);
+
        // Test too small memlimit
        in_pos = 0;
        memlimit = 1;