Re: [PATCH] remember to check return value from __copy_to_user() in cdrom_read_cdda_old()

From: Jens Axboe
Date: Tue Sep 07 2004 - 03:11:43 EST


On Mon, Sep 06 2004, Jesper Juhl wrote:
>
> Hi,
>
> Here's a patch to ensure that the return value from __copy_to_user() gets
> checked in cdrom_read_cdda_old().
> I assume that returning -EFAULT if the copy fails to copy all bytes is an
> appropriate action, but please correct me if I'm wrong.
>
> Signed-off-by: Jesper Juhl <juhl-lkml@xxxxxx>
>
> diff -up linux-2.6.9-rc1-bk13-orig/drivers/cdrom/cdrom.c linux-2.6.9-rc1-bk13/drivers/cdrom/cdrom.c
> --- linux-2.6.9-rc1-bk13-orig/drivers/cdrom/cdrom.c 2004-08-24 20:44:01.000000000 +0200
> +++ linux-2.6.9-rc1-bk13/drivers/cdrom/cdrom.c 2004-09-06 23:41:20.000000000 +0200
> @@ -1959,7 +1959,10 @@ static int cdrom_read_cdda_old(struct cd
> ret = cdrom_read_block(cdi, &cgc, lba, nr, 1, CD_FRAMESIZE_RAW);
> if (ret)
> break;
> - __copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr);
> + if (__copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) {
> + kfree(cgc.buffer);
> + return -EFAULT;
> + }
> ubuf += CD_FRAMESIZE_RAW * nr;
> nframes -= nr;
> lba += nr;

__copy_to_user is the unchecking version of copy_to_user.

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/