sprandom: wait to free validity_dist
authorVincent Fu <vincent.fu@samsung.com>
Thu, 4 Sep 2025 18:32:27 +0000 (14:32 -0400)
committerVincent Fu <vincent.fu@samsung.com>
Thu, 4 Sep 2025 18:35:20 +0000 (14:35 -0400)
This array is actually used to calculate invalid_capacity. So wait to
free it until the very end.

Fixes: 8c8e7050ccd9 ("sprandom: drop validity_dist after use")
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
sprandom.c

index 05e8c88a62400e384a7ea61311ee140d7cca2da2..7262eee38fc6ee54dac17572057cea3a9c523103 100644 (file)
@@ -602,8 +602,6 @@ static int sprandom_setup(struct sprandom_info *spr_info, uint64_t logical_size,
                double inv = (1.0 - validity_dist[i]) * (double)PCT_PRECISION;
                spr_info->invalid_pct[i] = (int)round(inv);
        }
-       free(validity_dist);
-       validity_dist = NULL;
 
        region_sz = physical_size / spr_info->num_regions;
        region_write_count = region_sz / align_bs;
@@ -641,6 +639,7 @@ static int sprandom_setup(struct sprandom_info *spr_info, uint64_t logical_size,
                total_alloc,
                bytes2str_simple(bytes2str_buf, sizeof(bytes2str_buf), total_alloc));
 
+       free(validity_dist);
        return 0;
 err:
        free(validity_dist);