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


Reply via email to