From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Benjamin Marzinski" Subject: [PATCH v2 1/7] kpartx: don't keep creating recursive partitions Date: Mon, 13 Feb 2017 22:06:47 -0600 Message-ID: <1487045213-15776-2-git-send-email-bmarzins@redhat.com> References: <1487045213-15776-1-git-send-email-bmarzins@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1487045213-15776-1-git-send-email-bmarzins@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: device-mapper development Cc: Cedric Buissart List-Id: dm-devel.ids 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 Signed-off-by: Benjamin Marzinski --- 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