libblkid: fix Atari prober logic

Addresses: https://github.com/karelzak/util-linux/issues/1159
Addresses: https://github.com/karelzak/util-linux/issues/1116
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2020-10-09 13:06:08 +02:00
parent 8d3f9430c5
commit 2cc76d50d7
1 changed files with 7 additions and 5 deletions

View File

@ -199,11 +199,10 @@ static int probe_atari_pt(blkid_probe pr,
hdsize = blkid_probe_get_size(pr) / 512;
/* Look for validly looking primary partition */
for (i = 0; ; i++) {
if (i >= ARRAY_SIZE(rs->part))
goto nothing;
/*
* At least one valid partition required
*/
for (i = 0; i < 4; i++) {
if (IS_PARTDEF_VALID(rs->part[i], hdsize)) {
if (blkid_probe_set_magic(pr,
offsetof(struct atari_rootsector, part[i]),
@ -214,6 +213,9 @@ static int probe_atari_pt(blkid_probe pr,
}
}
if (i == 4)
goto nothing;
if (blkid_partitions_need_typeonly(pr))
/* caller does not ask for details about partitions */
return BLKID_PROBE_OK;