[PATCH v4 0/1] Bugfix for Amiga partition fixes

Michael Schmitz
2023-07-04T23:38:24Z

Hi Jens,

my (again, hopefully) final version of the bugfix for the
bug reported by Christian Zigotzky against the Amiga RDB
partition code currently in linux-block as well as upstream.

This bug affects any users of RDB disks where the value of
(signed 32 bit) -1 signals the end of the linked list of
partitions. One of the popular AmigaOS tools used to
partition disks (Media Toolbox) uses this value. As a result,
the last partition is considered invalid and cannot be used.

The bug and this fix have been discussed on linux-block and
linux-m68k at length.

Testing by Christian also exposed another aspect of the old
bug fixed in commits fc3d092c6b ("block: fix signed int
overflow in Amiga partition support") and b6f3f28f60
("block: add overflow checks for Amiga partition support")
that I document here for future reference:

Partitions that did overflow the disk size (due to 32 bit int
overflow) were not skipped but truncated to the end of the
disk. Users who missed the warning message during boot would
go on to create a filesystem with a size exceeding the
actual partition size. Now that the 32 bit overflow has been
corrected, such filesystems may refuse to mount with a
'filesystem exceeds partition size' error. Users should
either correct the partition size, or resize the filesystem
before attempting to boot a kernel with the ealier RDB fixes
in place.

Note that this is not a new bug in the current code - just
one particular result of the old overflow bug that has only
now been noticed.

Cheers,

Michael

Michael Schmitz (1):
block: bugfix for Amiga partition overflow check patch

block/partitions/amiga.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--
2.17.1