mbox series

[v10,0/3] Amiga RDB partition support fixes

Message ID 20230615030837.8518-1-schmitzmic@gmail.com (mailing list archive)
Headers show
Series Amiga RDB partition support fixes | expand

Message

Michael Schmitz June 15, 2023, 3:08 a.m. UTC
Hi Jens,

Following up on Martin's enquiry, I am resubmitting the Amiga
partition support fixes again as v10, with changes addressing
your comments on v8, and a fix for warnings I saw from sparse
checking on v8 and v9. 

The simple fix (patch 1) still leaves ample room for overflows in
calculating start address and size of a RDB partition, though
such overflows should only be seen in rather unusual cases.

To address these potential overflows, checks are added in the
third patch of this series. Comments by Geert have been
addressed in full. 

In order to avoid warnings about a cast to a restricted
type (__be32, inside be32_to_cpu()) introduced by the third
patch, the second patch changes the annotation of the
rdb_CylBlocks field to __be3, which is what all of the 32 bit
fields in the RDB struct really ought to be. 

Reviewed-by tags by Geert and Christoph added. Fixes and
prerequisites for stable backport also added. 

Patch 2 still needs formal review. In my humble opinion, patch 1
can be applied while we wait for that, as it does mostly fix
this long standing bug (at least when LBD is enabled). 

Cheers,

        Michael

Michael Schmitz (3):
  block: fix signed int overflow in Amiga partition support
  block: change annotation of rdb_CylBlocks in affs_hardblocks.h
  block: add overflow checks for Amiga partition support

 block/partitions/amiga.c             | 102 ++++++++++++++++++++++-----
 include/uapi/linux/affs_hardblocks.h |   7 +-
 2 files changed, 91 insertions(+), 18 deletions(-)