Messages in this thread | | | From | Geert Uytterhoeven <> | Date | Mon, 8 May 2017 11:28:21 +0200 | Subject | Re: [PATCH] spi: spidev: use memdup_user |
| |
On Sat, May 6, 2017 at 5:42 PM, Geliang Tang <geliangtang@gmail.com> wrote: > Use memdup_user() helper instead of open-coding to simplify the code. > > Signed-off-by: Geliang Tang <geliangtang@gmail.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
> --- a/drivers/spi/spidev.c > +++ b/drivers/spi/spidev.c > @@ -325,7 +325,6 @@ static struct spi_ioc_transfer * > spidev_get_ioc_message(unsigned int cmd, struct spi_ioc_transfer __user *u_ioc, > unsigned *n_ioc) > { > - struct spi_ioc_transfer *ioc; > u32 tmp; > > /* Check type, command number and direction */ > @@ -342,14 +341,7 @@ spidev_get_ioc_message(unsigned int cmd, struct spi_ioc_transfer __user *u_ioc, > return NULL; > > /* copy into scratch area */ > - ioc = kmalloc(tmp, GFP_KERNEL); > - if (!ioc) > - return ERR_PTR(-ENOMEM); > - if (__copy_from_user(ioc, u_ioc, tmp)) {
Note that as memdup_user() calls copy_from_user(), it repeats the access_ok() check already done by spidev_ioctl().
> - kfree(ioc); > - return ERR_PTR(-EFAULT); > - } > - return ioc; > + return memdup_user(u_ioc, tmp);
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
| |