]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Fix sector size overflow, by Herbert Xu.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 10 Dec 2006 23:07:39 +0000 (23:07 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 10 Dec 2006 23:07:39 +0000 (23:07 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2237 c046a42c-6fe2-441c-8c8c-71466251a162

hw/fdc.c

index 930c0e21b8d94060c90739e6b2643d24e052279d..073dafa4c884f215f25cb56b08dabaffac71312f 100644 (file)
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -888,7 +888,7 @@ static void fdctrl_start_transfer (fdctrl_t *fdctrl, int direction)
         fdctrl->data_len = fdctrl->fifo[8];
     } else {
        int tmp;
-        fdctrl->data_len = 128 << fdctrl->fifo[5];
+        fdctrl->data_len = 128 << (fdctrl->fifo[5] > 7 ? 7 : fdctrl->fifo[5]);
         tmp = (cur_drv->last_sect - ks + 1);
         if (fdctrl->fifo[0] & 0x80)
             tmp += cur_drv->last_sect;