The exynos4210_fimd device has a setup where the guest can program
both the overall size of the LCD screen and also the corners of
"windows" that define where the guest memory should appear on that
screen. The current code assumes that the guest is sensible and
puts the corners of windows inside the overall screen. If it doesn't
then we will try to copy data to an address that is outside the
interfal framebuffer memory that we allocate to be the size of the
screen.

This patchset clamps the window coordinates to be within the screen
size. Patches 1 and 2 are simple refactorings to make the third
patch easier to read.

This fixes https://gitlab.com/qemu-project/qemu/-/work_items/3795

thanks
-- PMM

Peter Maydell (3):
  hw/display/exynos4210_fimd: Factor out finding screen width/height
  hw/display/exynos4210_fimd: Pass width to draw_line functions
  hw/display/exynos4210_fimd: Clamp windows to screen size

 hw/display/exynos4210_fimd.c | 54 ++++++++++++++++++++++++++----------
 1 file changed, 39 insertions(+), 15 deletions(-)

-- 
2.43.0


Reply via email to