From d92b4b298763311e2a39eb3cf27b8d570d2aba16 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Thu, 2 Oct 2025 04:37:32 +0100 Subject: [PATCH] Fix setting single level DDT v2. --- src/ddt/ddt_v2.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/ddt/ddt_v2.c b/src/ddt/ddt_v2.c index 59c693e..3865178 100644 --- a/src/ddt/ddt_v2.c +++ b/src/ddt/ddt_v2.c @@ -1125,8 +1125,19 @@ bool set_ddt_single_level_v2(aaruformatContext *ctx, uint64_t sector_address, co return false; } - *ddt_entry |= (uint64_t)sector_status << 28; - ctx->cachedSecondaryDdtBig[sector_address] = (uint32_t)*ddt_entry; + *ddt_entry |= (uint64_t)sector_status << 28; + } + } + + if(ctx->userDataDdtHeader.sizeType == SmallDdtSizeType) + { + TRACE("Setting small single-level DDT entry %d to %u", sector_address, (uint16_t)*ddt_entry); + ctx->userDataDdtMini[sector_address] = (uint16_t)*ddt_entry; + } + else if(ctx->userDataDdtHeader.sizeType == BigDdtSizeType) + { + TRACE("Setting big single-level DDT entry %d to %u", sector_address, (uint32_t)*ddt_entry); + ctx->userDataDdtBig[sector_address] = (uint32_t)*ddt_entry; } TRACE("Exiting set_ddt_single_level_v2() = true");