]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
cirrus: fix off-by-one in cirrus_bitblt_rop_bkwd_transp_*_16
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 17 Mar 2017 07:21:36 +0000 (08:21 +0100)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 21 Mar 2017 20:03:41 +0000 (15:03 -0500)
The switch from pointers to addresses (commit
026aeffcb4752054830ba203020ed6eb05bcaba8 and
ffaf857778286ca54e3804432a2369a279e73aa7) added
a off-by-one bug to 16bit backward blits.  Fix.

Reported-by: 李强 <liqiang6-s@360.cn>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Li Qiang <liqiang6-s@360.cn>
Message-id: 1489735296-19047-1-git-send-email-kraxel@redhat.com
(cherry picked from commit f019722cbbb45aea153294fc8921fcc96a4d3fa2)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/display/cirrus_vga_rop.h

index c61a67735341239faf2285989d27e1de6105068a..0841b9efa9cebd3f31493ca86ac7a1c293ba4c90 100644 (file)
@@ -219,7 +219,7 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
     srcpitch += bltwidth;
     for (y = 0; y < bltheight; y++) {
         for (x = 0; x < bltwidth; x+=2) {
-            ROP_OP_TR_16(s, dstaddr, cirrus_src16(s, srcaddr), transp);
+            ROP_OP_TR_16(s, dstaddr - 1, cirrus_src16(s, srcaddr - 1), transp);
             dstaddr -= 2;
             srcaddr -= 2;
         }