From: Vaclav Dolezal Date: Wed, 24 Jan 2018 12:52:49 +0000 (+0100) Subject: libblkid: atari - don't add duplicate entries X-Git-Tag: v2.32-rc1~42^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=568419b1aa6d3c59c9e55579f18e8c8920337378;p=thirdparty%2Futil-linux.git libblkid: atari - don't add duplicate entries This should protect against looped XGMs. Signed-off-by: Vaclav Dolezal --- diff --git a/libblkid/src/partitions/atari.c b/libblkid/src/partitions/atari.c index 1ec17d486c..432df20254 100644 --- a/libblkid/src/partitions/atari.c +++ b/libblkid/src/partitions/atari.c @@ -107,6 +107,13 @@ static int parse_partition(blkid_partlist ls, blkid_parttable tab, start = be32_to_cpu(part->start) + offset; size = be32_to_cpu(part->size); + if (blkid_partlist_get_partition_by_start(ls, start)) { + /* Don't increment partno for extended parts */ + if (!offset) + blkid_partlist_increment_partno(ls); + return 0; + } + par = blkid_partlist_add_partition(ls, tab, start, size); if (!par) return -ENOMEM; @@ -151,7 +158,7 @@ static int parse_extended(blkid_probe pr, blkid_partlist ls, return 0; rc = parse_partition(ls, tab, &xrs->part[i], xstart); - if (rc < 0) + if (rc <= 0) return rc; if (!IS_ACTIVE(xrs->part[i+1]))