diff options
author | Michael Schmitz <[email protected]> | 2023-06-21 08:17:24 +1200 |
---|---|---|
committer | Jens Axboe <[email protected]> | 2023-06-20 14:28:17 -0600 |
commit | 95a55437dc49fb3342c82e61f5472a71c63d9ed0 (patch) | |
tree | 88bc9279a6aa8288dc0643ff0cb28ec8ede1c73d /lib/test_fortify/write_overflow-memcpy.c | |
parent | fc3d092c6bb48d5865fec15ed5b333c12f36288c (diff) |
block: change all __u32 annotations to __be32 in affs_hardblocks.h
The Amiga partition parser module uses signed int for partition sector
address and count, which will overflow for disks larger than 1 TB.
Use u64 as type for sector address and size to allow using disks up to
2 TB without LBD support, and disks larger than 2 TB with LBD. The RBD
format allows to specify disk sizes up to 2^128 bytes (though native
OS limitations reduce this somewhat, to max 2^68 bytes), so check for
u64 overflow carefully to protect against overflowing sector_t.
This bug was reported originally in 2012, and the fix was created by
the RDB author, Joanne Dow <[email protected]>. A patch had been
discussed and reviewed on linux-m68k at that time but never officially
submitted (now resubmitted as patch 1 of this series).
Patch 3 (this series) adds additional error checking and warning
messages. One of the error checks now makes use of the previously
unused rdb_CylBlocks field, which causes a 'sparse' warning
(cast to restricted __be32).
Annotate all 32 bit fields in affs_hardblocks.h as __be32, as the
on-disk format of RDB and partition blocks is always big endian.
Reported-by: Martin Steigerwald <[email protected]>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=43511
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Message-ID: <[email protected]>
Cc: <[email protected]> # 5.2
Signed-off-by: Michael Schmitz <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Reviewed-by: Geert Uytterhoeven <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'lib/test_fortify/write_overflow-memcpy.c')
0 files changed, 0 insertions, 0 deletions