On Mon, Apr 18, 2016 at 01:10:43PM +0200, Rafał Miłecki wrote:

> +static int bcm53xxspi_flash_read(struct spi_device *spi,
> +                              struct spi_flash_read_message *msg)
> +{
> +     struct bcm53xxspi *b53spi = spi_master_get_devdata(spi->master);
> +     int ret = 0;
> +
> +     bcm53xxspi_enable_bspi(b53spi);
> +     memcpy_fromio(msg->buf, b53spi->mmio_base + msg->from, msg->len);
> +     msg->retlen = msg->len;

There's no bounds check here but...

> +     if (core->addr_s[0])
> +             b53spi->mmio_base = devm_ioremap(dev, core->addr_s[0], SZ_32M);

...we only mapped 32M here.  What if something tries to do a larger
read?  It's also a bit surprising that we're mapping a specific size
here rather than the entire resource.

Attachment: signature.asc
Description: PGP signature

Reply via email to