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@xxxxxxxxxx>