From 12418518c22be1f2e1065fc6f0962be1539842f9 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 10 Dec 2025 00:31:37 +0000 Subject: [PATCH] Fixed metadata block not being read correctly. --- src/blocks/metadata.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/blocks/metadata.c b/src/blocks/metadata.c index 5765f98..86cac9e 100644 --- a/src/blocks/metadata.c +++ b/src/blocks/metadata.c @@ -92,11 +92,14 @@ void process_metadata_block(aaruformat_context *ctx, const IndexEntry *entry) return; } - TRACE("Reading metadata block of size %u at position %" PRIu64, ctx->metadata_block_header.blockSize, - entry->offset + sizeof(MetadataBlockHeader)); - read_bytes = fread(ctx->metadata_block, 1, ctx->metadata_block_header.blockSize, ctx->imageStream); + TRACE("Reading metadata block of size %u at position %" PRIu64, + ctx->metadata_block_header.blockSize + sizeof(MetadataBlockHeader), entry->offset); - if(read_bytes != ctx->metadata_block_header.blockSize) + fseek(ctx->imageStream, entry->offset, SEEK_SET); + read_bytes = fread(ctx->metadata_block, 1, ctx->metadata_block_header.blockSize + sizeof(MetadataBlockHeader), + ctx->imageStream); + + if(read_bytes != ctx->metadata_block_header.blockSize + sizeof(MetadataBlockHeader)) { memset(&ctx->metadata_block_header, 0, sizeof(MetadataBlockHeader)); free(ctx->metadata_block);