staging: dgnc: off by one in dgnc_mgmt_ioctl()
"dgnc_NumBoards" is the number of initialized elements in the dgnc_Board[] array so the comparison should be ">=" instead of ">" so we don't read invalid data. We can remove the special handling of the empty array now that we've fixed this bug. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
65da04c1ca
Коммит
cb1185a4ae
|
@ -153,8 +153,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||||
if (copy_from_user(&brd, uarg, sizeof(int)))
|
if (copy_from_user(&brd, uarg, sizeof(int)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
||||||
if ((brd < 0) || (brd > dgnc_NumBoards) ||
|
if (brd < 0 || brd >= dgnc_NumBoards)
|
||||||
(dgnc_NumBoards == 0))
|
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
memset(&di, 0, sizeof(di));
|
memset(&di, 0, sizeof(di));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче