]> git.proxmox.com Git - mirror_qemu.git/commit
ide: refuse WIN_READ_NATIVE_MAX on empty device
authorStefan Hajnoczi <stefanha@redhat.com>
Fri, 5 Apr 2013 09:51:01 +0000 (11:51 +0200)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 15 Apr 2013 08:18:05 +0000 (10:18 +0200)
commitaad64f3193cbdc3741d10afa0237b6833e46e94e
treefe368dda3f0c10160dc5c833c906dfa1b3bf9545
parentc09b437b5fab487edd924e09d1732062d7dcf093
ide: refuse WIN_READ_NATIVE_MAX on empty device

What is the highest addressable sector on an empty CD-ROM?  Nothing is
addressable so produce an error.

This patch prevents a divide-by-zero in ide_set_sector() since
s->sectors and s->heads would be 0.  Not to mention that a sector=-1
argument would be nonsense.

Note that WIN_READ_NATIVE_MAX can be triggered using hdparm -N 1024
/dev/cdrom.  The LBA bit will be set to 1 though, so the only easy way
to go down the ide_set_sector() CHS code path which divides by zero is
to comment out the s->select & 0x40 case for testing.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
hw/ide/core.c