From: Prasad J Pandit <p...@fedoraproject.org>

In vga_draw_graphic, display width could exceed the maximum
range of VBE_DISPI_MAX_XRES(16000). This could lead to possible
integer overflows. Add check to avoid it.

Reported-by: Zuozhi Fzz <zuozhi....@alibaba-inc.com>
Signed-off-by: Prasad J Pandit <p...@fedoraproject.org>
---
 hw/display/vga.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/hw/display/vga.c b/hw/display/vga.c
index 9f68394..1a66291 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -1478,6 +1478,9 @@ static void vga_draw_graphic(VGACommonState *s, int 
full_update)
             disp_width <<= 1;
         }
     }
+    if (disp_width > VBE_DISPI_MAX_XRES) {
+        disp_width = VBE_DISPI_MAX_XRES;
+    }
 
     depth = s->get_bpp(s);
 
-- 
2.5.5


Reply via email to