:: commit 8f95b59f795497d33a22316a31aa8dbf2d97cab1

Kamila Szewczyk <kspalaiologos@gmail.com> — 2022-05-15 10:10

parents: daffa4bb4d

libsais hardening

diff --git a/src/libbz3.c b/src/libbz3.c
index 21d03d4..e24eb23 100644
--- a/src/libbz3.c
+++ b/src/libbz3.c
@@ -78,6 +78,7 @@ PUBLIC_API struct bz3_state * bz3_new(s32 block_size) {
 
     bz3_state->swap_buffer = malloc(block_size + block_size / 50 + 32);
     bz3_state->sais_array = malloc((block_size + 2) * sizeof(s32));
+    memset(bz3_state->sais_array, 0, sizeof(s32) * (block_size + 2));
 
     bz3_state->lzp_lut = calloc(1 << LZP_DICTIONARY, sizeof(s32));
 
diff --git a/src/libsais.c b/src/libsais.c
index 39cce1e..5460502 100644
--- a/src/libsais.c
+++ b/src/libsais.c
@@ -5238,6 +5238,7 @@ static sa_sint_t libsais_unbwt_main(const u8 * T, u8 * U, sa_uint_t * P, sa_sint
     sa_uint_t * RESTRICT bucket2 =
         (sa_uint_t *)libsais_alloc_aligned(ALPHABET_SIZE * ALPHABET_SIZE * sizeof(sa_uint_t), 4096);
     u16 * RESTRICT fastbits = (u16 *)libsais_alloc_aligned(((size_t)1 + (size_t)(n >> shift)) * sizeof(u16), 4096);
+    memset(fastbits, 0, ((size_t)1 + (size_t)(n >> shift)) * sizeof(u16));
     sa_uint_t * RESTRICT buckets =
         threads > 1 && n >= 262144
             ? (sa_uint_t *)libsais_alloc_aligned(
tab: 248 wrap: offon