random: don't forget compat_ioctl on unrandom

Message ID 20191217172455.186395-1-Jason@zx2c4.com
State New
Headers show
Series
  • random: don't forget compat_ioctl on unrandom
Related show

Commit Message

Jason A. Donenfeld Dec. 17, 2019, 5:24 p.m.
Recently, there's been some compat ioctl cleanup, in which large
hardcoded lists were replaced with compat_ptr_ioctl. One of these
changes involved removing the random.c hardcoded list entries and adding
a compat ioctl function pointer to the random.c fops. In the process,
urandom was forgotten about, so this commit fixes that oversight.

Fixes: 507e4e2b430b ("compat_ioctl: remove /dev/random commands")
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

---
 drivers/char/random.c | 1 +
 1 file changed, 1 insertion(+)

-- 
2.24.1

Comments

Jason A. Donenfeld Dec. 17, 2019, 5:39 p.m. | #1
Ooof, typing too fast. "unrandom" in the subject should be "urandom", of course.

On Tue, Dec 17, 2019 at 6:25 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:
>

> Recently, there's been some compat ioctl cleanup, in which large

> hardcoded lists were replaced with compat_ptr_ioctl. One of these

> changes involved removing the random.c hardcoded list entries and adding

> a compat ioctl function pointer to the random.c fops. In the process,

> urandom was forgotten about, so this commit fixes that oversight.

>

> Fixes: 507e4e2b430b ("compat_ioctl: remove /dev/random commands")

> Cc: Arnd Bergmann <arnd@arndb.de>

> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

> ---

>  drivers/char/random.c | 1 +

>  1 file changed, 1 insertion(+)

>

> diff --git a/drivers/char/random.c b/drivers/char/random.c

> index 909e0c3d82ea..cda12933a17d 100644

> --- a/drivers/char/random.c

> +++ b/drivers/char/random.c

> @@ -2175,6 +2175,7 @@ const struct file_operations urandom_fops = {

>         .read  = urandom_read,

>         .write = random_write,

>         .unlocked_ioctl = random_ioctl,

> +       .compat_ioctl = compat_ptr_ioctl,

>         .fasync = random_fasync,

>         .llseek = noop_llseek,

>  };

> --

> 2.24.1
Arnd Bergmann Dec. 17, 2019, 7:36 p.m. | #2
On Tue, Dec 17, 2019 at 6:25 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:
>

> Recently, there's been some compat ioctl cleanup, in which large

> hardcoded lists were replaced with compat_ptr_ioctl. One of these

> changes involved removing the random.c hardcoded list entries and adding

> a compat ioctl function pointer to the random.c fops. In the process,

> urandom was forgotten about, so this commit fixes that oversight.

>

> Fixes: 507e4e2b430b ("compat_ioctl: remove /dev/random commands")

> Cc: Arnd Bergmann <arnd@arndb.de>

> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>


Thanks for debugging this. I had already sent the same
patch a few days ago after the first report:

https://lore.kernel.org/lkml/20191207185837.4030699-1-arnd@arndb.de/

Greg, can you please apply one of these and send it to Linus for 5.5-rc3?

     Arnd

> ---

>  drivers/char/random.c | 1 +

>  1 file changed, 1 insertion(+)

>

> diff --git a/drivers/char/random.c b/drivers/char/random.c

> index 909e0c3d82ea..cda12933a17d 100644

> --- a/drivers/char/random.c

> +++ b/drivers/char/random.c

> @@ -2175,6 +2175,7 @@ const struct file_operations urandom_fops = {

>         .read  = urandom_read,

>         .write = random_write,

>         .unlocked_ioctl = random_ioctl,

> +       .compat_ioctl = compat_ptr_ioctl,

>         .fasync = random_fasync,

>         .llseek = noop_llseek,

>  };

> --

> 2.24.1

>
Greg KH Dec. 17, 2019, 7:56 p.m. | #3
On Tue, Dec 17, 2019 at 08:36:48PM +0100, Arnd Bergmann wrote:
> On Tue, Dec 17, 2019 at 6:25 PM Jason A. Donenfeld <Jason@zx2c4.com> wrote:

> >

> > Recently, there's been some compat ioctl cleanup, in which large

> > hardcoded lists were replaced with compat_ptr_ioctl. One of these

> > changes involved removing the random.c hardcoded list entries and adding

> > a compat ioctl function pointer to the random.c fops. In the process,

> > urandom was forgotten about, so this commit fixes that oversight.

> >

> > Fixes: 507e4e2b430b ("compat_ioctl: remove /dev/random commands")

> > Cc: Arnd Bergmann <arnd@arndb.de>

> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

> > Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>

> 

> Thanks for debugging this. I had already sent the same

> patch a few days ago after the first report:

> 

> https://lore.kernel.org/lkml/20191207185837.4030699-1-arnd@arndb.de/

> 

> Greg, can you please apply one of these and send it to Linus for 5.5-rc3?


Ugh, I missed your first one, sorry, I thought that was for Ted and
missed that it was due to a patch that came from my tree.  I've queued
Jason's patch up now.

thanks,

greg k-h

Patch

diff --git a/drivers/char/random.c b/drivers/char/random.c
index 909e0c3d82ea..cda12933a17d 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -2175,6 +2175,7 @@  const struct file_operations urandom_fops = {
 	.read  = urandom_read,
 	.write = random_write,
 	.unlocked_ioctl = random_ioctl,
+	.compat_ioctl = compat_ptr_ioctl,
 	.fasync = random_fasync,
 	.llseek = noop_llseek,
 };