If the dos partition table is corrupted, kpartx can just keep creating
the same partitions until it runs out of partition numbers. This check
catches the recursion.

Signed-off-by: Cedric Buissart <cbuis...@redhat.com>
Signed-off-by: Benjamin Marzinski <bmarz...@redhat.com>
---
 kpartx/dos.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kpartx/dos.c b/kpartx/dos.c
index 64b27b6..4985152 100644
--- a/kpartx/dos.c
+++ b/kpartx/dos.c
@@ -46,7 +46,7 @@ read_extended_partition(int fd, struct partition *ep, int en,
                for (i=0; i<2; i++) {
                        memcpy(&p, bp + 0x1be + i * sizeof (p), sizeof (p));
                        if (is_extended(p.sys_type)) {
-                               if (p.nr_sects && !moretodo) {
+                               if (p.start_sect && p.nr_sects && !moretodo) {
                                        next = start + sector_size_mul * 
le32_to_cpu(p.start_sect);
                                        moretodo = 1;
                                }
-- 
1.8.3.1

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to