linux/block/partitions
Alden Tondettar c5082b70ad partitions/efi: Fix integer overflow in GPT size calculation
If a GUID Partition Table claims to have more than 2**25 entries, the
calculation of the partition table size in alloc_read_gpt_entries() will
overflow a 32-bit integer and not enough space will be allocated for the
table.

Nothing seems to get written out of bounds, but later efi_partition() will
read up to 32768 bytes from a 128 byte buffer, possibly OOPSing or exposing
information to /proc/partitions and uevents.

The problem exists on both 64-bit and 32-bit platforms.

Fix the overflow and also print a meaningful debug message if the table
size is too large.

Signed-off-by: Alden Tondettar <alden.tondettar@gmail.com>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-01-17 09:02:31 -07:00
..
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2014-08-05 13:13:24 -06:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00
2012-01-03 22:54:06 -05:00