mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
Improve cache initialization by adding divisor check to prevent division by zero
This commit is contained in:
18
src/open.c
18
src/open.c
@@ -447,10 +447,20 @@ void *aaruf_open(const char *filepath) // NOLINT(readability-function-size)
|
|||||||
|
|
||||||
// Initialize caches
|
// Initialize caches
|
||||||
TRACE("Initializing caches");
|
TRACE("Initializing caches");
|
||||||
ctx->blockHeaderCache.cache = NULL;
|
ctx->blockHeaderCache.cache = NULL;
|
||||||
ctx->blockHeaderCache.max_items = MAX_CACHE_SIZE / (ctx->imageInfo.SectorSize * (1 << ctx->shift));
|
ctx->blockCache.cache = NULL;
|
||||||
ctx->blockCache.cache = NULL;
|
|
||||||
ctx->blockCache.max_items = ctx->blockHeaderCache.max_items;
|
const uint64_t cache_divisor = (uint64_t)ctx->imageInfo.SectorSize * (1ULL << ctx->shift);
|
||||||
|
if(cache_divisor == 0)
|
||||||
|
{
|
||||||
|
ctx->blockHeaderCache.max_items = 0;
|
||||||
|
ctx->blockCache.max_items = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ctx->blockHeaderCache.max_items = MAX_CACHE_SIZE / cache_divisor;
|
||||||
|
ctx->blockCache.max_items = ctx->blockHeaderCache.max_items;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Cache tracks and sessions?
|
// TODO: Cache tracks and sessions?
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user