mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
The overlay viewport end coordinates are computed from the viewport
origin and dimensions using 32-bit unsigned arithmetic. Large input
values can cause these calculations to wrap around before the resulting
coordinates are passed to SetOverlayViewPort().
SetOverlayViewPort() packs the viewport coordinates into 16-bit
register fields. The X coordinates are additionally adjusted by +2
and +1 before being written. Validate the coordinate calculations
for 32-bit wraparound and ensure that the adjusted coordinates fit
within their 16-bit register fields before calling
SetOverlayViewPort().
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes:
|
||
|---|---|---|
| .. | ||
| fbdev.c | ||
| Makefile | ||
| STG4000InitDevice.c | ||
| STG4000Interface.h | ||
| STG4000OverlayDevice.c | ||
| STG4000Ramdac.c | ||
| STG4000Reg.h | ||
| STG4000VTG.c | ||