[PATCH v3] mtd: spi-nor: Fix shift-out-of-bounds in spi_nor_set_erase_type

Tudor Ambarus tudor.ambarus at linaro.org
Mon Feb 6 00:42:22 PST 2023


On Fri, 03 Feb 2023 09:07:54 +0200, Tudor Ambarus wrote:
> spi_nor_set_erase_type() was used either to set or to mask out an erase
> type. When we used it to mask out an erase type a shift-out-of-bounds
> was hit:
> UBSAN: shift-out-of-bounds in drivers/mtd/spi-nor/core.c:2237:24
> shift exponent 4294967295 is too large for 32-bit type 'int'
> 
> The setting of the size_{shift, mask} and of the opcode are unnecessary
> when the erase size is zero, as throughout the code just the erase size
> is considered to determine whether an erase type is supported or not.
> Setting the opcode to 0xFF was wrong too as nobody guarantees that 0xFF
> is an unused opcode. Thus when masking out an erase type, just set the
> erase size to zero. This will fix the shift-out-of-bounds.
> 
> [...]

Applied to spi-nor/next, thanks!

[1/1] mtd: spi-nor: Fix shift-out-of-bounds in spi_nor_set_erase_type
      https://git.kernel.org/mtd/c/f0f0cfdc3a02

Best regards,
-- 
Tudor Ambarus <tudor.ambarus at linaro.org>



More information about the linux-mtd mailing list