mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 11:14:39 +00:00
Fix calculation of negative sectors offset in DDT tables.
This commit is contained in:
@@ -605,7 +605,7 @@ int32_t decode_ddt_single_level_v2(aaruformat_context *ctx, uint64_t sector_addr
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
sector_address -= ctx->user_data_ddt_header.negative;
|
||||
sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
@@ -757,7 +757,7 @@ int32_t decode_ddt_multi_level_v2(aaruformat_context *ctx, uint64_t sector_addre
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
sector_address -= ctx->user_data_ddt_header.negative;
|
||||
sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
@@ -1045,7 +1045,7 @@ bool set_ddt_single_level_v2(aaruformat_context *ctx, uint64_t sector_address, c
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
sector_address -= ctx->user_data_ddt_header.negative;
|
||||
sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
@@ -1125,7 +1125,7 @@ bool set_ddt_multi_level_v2(aaruformat_context *ctx, uint64_t sector_address, bo
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
sector_address -= ctx->user_data_ddt_header.negative;
|
||||
sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
|
||||
@@ -888,7 +888,7 @@ AARU_EXPORT int32_t AARU_CALL aaruf_read_sector_long(void *context, const uint64
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
corrected_sector_address -= ctx->user_data_ddt_header.negative;
|
||||
corrected_sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
corrected_sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
@@ -1529,7 +1529,7 @@ AARU_EXPORT int32_t AARU_CALL aaruf_read_sector_tag(const void *context, const u
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
corrected_sector_address -= ctx->user_data_ddt_header.negative;
|
||||
corrected_sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
corrected_sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
|
||||
@@ -604,7 +604,7 @@ AARU_EXPORT int32_t AARU_CALL aaruf_write_sector_long(void *context, uint64_t se
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
corrected_sector_address -= ctx->user_data_ddt_header.negative;
|
||||
corrected_sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
corrected_sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
@@ -2127,7 +2127,7 @@ AARU_EXPORT int32_t AARU_CALL aaruf_write_sector_tag(void *context, const uint64
|
||||
|
||||
// Calculate positive or negative sector
|
||||
if(negative)
|
||||
corrected_sector_address -= ctx->user_data_ddt_header.negative;
|
||||
corrected_sector_address = ctx->user_data_ddt_header.negative - sector_address;
|
||||
else
|
||||
corrected_sector_address += ctx->user_data_ddt_header.negative;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user