diff --git a/src/arena.c b/src/arena.c index 4a383670..9a8e5d64 100644 --- a/src/arena.c +++ b/src/arena.c @@ -1023,6 +1023,7 @@ arena_cache_bin_fill_small(tsdn_t *tsdn, arena_t *arena, cache_bin_t *cache_bin, cache_bin_info_t *cache_bin_info, szind_t binind, const unsigned nfill) { assert(cache_bin_ncached_get_local(cache_bin, cache_bin_info) == 0); + assert(nfill != 0); const bin_info_t *bin_info = &bin_infos[binind]; diff --git a/src/tcache.c b/src/tcache.c index 02627896..d57574ca 100644 --- a/src/tcache.c +++ b/src/tcache.c @@ -257,6 +257,9 @@ tcache_alloc_small_hard(tsdn_t *tsdn, arena_t *arena, assert(!tcache_bin_disabled(binind, cache_bin, tcache_slow)); unsigned nfill = cache_bin_info_ncached_max_get(cache_bin, &cache_bin->bin_info) >> tcache_slow->lg_fill_div[binind]; + if (nfill == 0) { + nfill = 1; + } arena_cache_bin_fill_small(tsdn, arena, cache_bin, &cache_bin->bin_info, binind, nfill); tcache_slow->bin_refilled[binind] = true;