Denis Efremov 9b04609b78 floppy: fix invalid pointer dereference in drive_name
This fixes the invalid pointer dereference in the drive_name function of
the floppy driver.

The native_format field of the struct floppy_drive_params is used as
floppy_type array index in the drive_name function.  Thus, the field
should be checked the same way as the autodetect field.

To trigger the bug, one could use a value out of range and set the drive
parameters with the FDSETDRVPRM ioctl.  Next, FDGETDRVTYP ioctl should
be used to call the drive_name.  A floppy disk is not required to be
inserted.

CAP_SYS_ADMIN is required to call FDSETDRVPRM.

The patch adds the check for a value of the native_format field to be in
the '0 <= x < ARRAY_SIZE(floppy_type)' range of the floppy_type array
indices.

The bug was found by syzkaller.

Signed-off-by: Denis Efremov <efremov@ispras.ru>
Tested-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-17 14:45:50 -07:00
..
2019-06-21 09:58:42 -07:00
2019-07-06 10:06:37 -07:00
2019-06-08 12:52:42 -07:00
2019-06-21 10:20:19 -07:00
2019-06-21 09:58:42 -07:00
2019-06-22 14:08:47 -07:00
2019-05-31 08:34:32 -07:00
2019-06-25 03:41:03 +08:00
2019-06-21 10:18:16 -07:00
2019-06-21 09:58:42 -07:00
2019-06-26 13:26:08 -07:00
2019-06-08 12:52:42 -07:00
2019-06-29 16:59:45 +08:00
2019-06-10 18:07:39 +02:00
2019-07-06 09:56:20 -07:00
2019-06-20 11:56:35 +02:00