From 6def07a75fea70f41cebba46876bd24149dc81d3 Mon Sep 17 00:00:00 2001 From: steadfasterX Date: Thu, 21 Dec 2017 19:11:03 +0100 Subject: [PATCH] fix: wrong part_size calculation (misses 1 sector) IRC excerpt: [12-20 15:20] i have a partition: end=378879 start=377856 [12-20 15:21] so the calcluation would be 378879-377856 [12-20 15:21] which is 1023 [12-20 15:21] which can never be correct [12-20 15:22] this is bc in the calculation it will need to include the start (or end) sector itself [12-20 15:23] when i dump without that +1 i miss exact 512 bytes so 1 sector --- extract-partitions.py | 2 +- partitions.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extract-partitions.py b/extract-partitions.py index 328f2b5..64fb3de 100755 --- a/extract-partitions.py +++ b/extract-partitions.py @@ -26,7 +26,7 @@ def dump_partitions(comm, disk_fd, outdir, max_size): diskinfo = partitions.get_partitions(comm, disk_fd) for part in diskinfo.gpt.partitions: part_offset = part.first_lba * partitions.BLOCK_SIZE - part_size = (part.last_lba - part.first_lba) * partitions.BLOCK_SIZE + part_size = (part.last_lba - (part.first_lba - 1)) * partitions.BLOCK_SIZE part_name = part.name part_label = "/dev/mmcblk0p%i" % part.index if max_size and part_size > max_size: diff --git a/partitions.py b/partitions.py index 7f333c2..190512f 100755 --- a/partitions.py +++ b/partitions.py @@ -259,7 +259,7 @@ def main(): _logger.debug("%s", info) part_offset = part.first_lba * BLOCK_SIZE - part_size = (part.last_lba - part.first_lba) * BLOCK_SIZE + part_size = (part.last_lba - (part.first_lba - 1)) * BLOCK_SIZE _logger.debug("Opened fd %d for disk", disk_fd) if args.dump: