• G
    vga: handle cirrus vbe mode wraparounds. · 28f77de2
    Gerd Hoffmann 提交于
    Commit "3d90c625 vga: stop passing pointers to vga_draw_line*
    functions" is incomplete.  It doesn't handle the case that the vga
    rendering code tries to create a shared surface, i.e. a pixman image
    backed by vga video memory.  That can not work in case the guest display
    wraps from end of video memory to the start.  So force shadowing in that
    case.  Also adjust the snapshot region calculation.
    
    Can trigger with cirrus only, when programming vbe modes using the bochs
    api (stdvga, also qxl and virtio-vga in vga compat mode) wrap arounds
    can't happen.
    
    Fixes: CVE-2017-13672
    Fixes: 3d90c625
    Cc: P J P <ppandit@redhat.com>
    Reported-by: NDavid Buchanan <d@vidbuchanan.co.uk>
    Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
    Message-id: 20171010141323.14049-3-kraxel@redhat.com
    28f77de2
vga.c 68.6 KB