aboutsummaryrefslogtreecommitdiff
path: root/hw/display/cirrus_vga.c
diff options
context:
space:
mode:
authorlu zhipeng <luzhipeng@cestc.cn>2022-09-29 20:23:52 +0800
committerGerd Hoffmann <kraxel@redhat.com>2022-10-12 11:00:55 +0200
commit2fba4e9c4938406fa676bfd3566e416e095cf93a (patch)
tree61d5a710a3c0e72034e970d475229e1dc680b94c /hw/display/cirrus_vga.c
parent604a86895feb6639417fe957dfc95191f7f63565 (diff)
downloadqemu-2fba4e9c4938406fa676bfd3566e416e095cf93a.zip
qemu-2fba4e9c4938406fa676bfd3566e416e095cf93a.tar.gz
qemu-2fba4e9c4938406fa676bfd3566e416e095cf93a.tar.bz2
cirrus_vga: fix potential memory overflow
Signed-off-by: lu zhipeng <luzhipeng@cestc.cn> Message-Id: <20220929122352.1891-1-luzhipeng@cestc.cn> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/display/cirrus_vga.c')
-rw-r--r--hw/display/cirrus_vga.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/display/cirrus_vga.c b/hw/display/cirrus_vga.c
index 3bb6a58..2577005 100644
--- a/hw/display/cirrus_vga.c
+++ b/hw/display/cirrus_vga.c
@@ -834,7 +834,7 @@ static void cirrus_bitblt_cputovideo_next(CirrusVGAState * s)
word alignment, so we keep them for the next line */
/* XXX: keep alignment to speed up transfer */
end_ptr = s->cirrus_bltbuf + s->cirrus_blt_srcpitch;
- copy_count = s->cirrus_srcptr_end - end_ptr;
+ copy_count = MIN(s->cirrus_srcptr_end - end_ptr, CIRRUS_BLTBUFSIZE);
memmove(s->cirrus_bltbuf, end_ptr, copy_count);
s->cirrus_srcptr = s->cirrus_bltbuf + copy_count;
s->cirrus_srcptr_end = s->cirrus_bltbuf + s->cirrus_blt_srcpitch;