The userspace program could pass any values to the driver through
ioctl() interface. If the driver doesn't check the value of pixclock,
it may cause divide-by-zero error.
In sisfb_check_var(), var->pixclock is used as a divisor to caculate
drate before it is checked against zero. Fix this by checking it
at the beginning.
This is similar to CVE-2022-3061 in i740fb which was fixed by
commit
|
||
|---|---|---|
| .. | ||
| 300vtbl.h | ||
| 310vtbl.h | ||
| Makefile | ||
| init.c | ||
| init.h | ||
| init301.c | ||
| init301.h | ||
| initdef.h | ||
| initextlfb.c | ||
| oem300.h | ||
| oem310.h | ||
| sis.h | ||
| sis_accel.c | ||
| sis_accel.h | ||
| sis_main.c | ||
| sis_main.h | ||
| vgatypes.h | ||
| vstruct.h | ||