[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3] vga: check the validation of memory addr whe
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-devel] [PATCH v3] vga: check the validation of memory addr when draw text |
Date: |
Fri, 12 Jan 2018 14:13:35 +0100 |
User-agent: |
NeoMutt/20171215 |
On Thu, Jan 11, 2018 at 09:27:24PM +0800, linzhecheng wrote:
> Start a vm with qemu-kvm -enable-kvm -vnc :66 -smp 1 -m 1024 -hda
> redhat_5.11.qcow2 -device pcnet -vga cirrus,
> then use VNC client to connect to VM, and excute the code below in guest
> OS will lead to qemu crash:
>
> int main()
> {
> iopl(3);
> srand(time(NULL));
> int a,b;
> while(1){
> a = rand()%0x100;
> b = 0x3c0 + (rand()%0x20);
> outb(a,b);
> }
> return 0;
> }
>
> The above code is writing the registers of VGA randomly.
> We can write VGA CRT controller registers index 0x0C or 0x0D
> (which is the start address register) to modify the
> the display memory address of the upper left pixel
> or character of the screen. The address may be out of the
> range of vga ram. So we should check the validation of memory address
> when reading or writing it to avoid segfault.
Patch queued up.
thanks,
Gerd