Patchwork hw/pc.c: Fix use-while-uninitialized of fd_type[]

login
register
mail settings
Submitter Peter Maydell
Date Nov. 9, 2011, 9:59 p.m.
Message ID <1320875990-10517-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/124710/
State New
Headers show

Comments

Peter Maydell - Nov. 9, 2011, 9:59 p.m.
Fix a use-while-uninitialized of the fd_type[] array (introduced
in commit 34d4260e1, noticed by Coverity). This is more theoretical
than practical, since it's quite hard to get here with floppy==NULL
(the qdev_try_create() of the isa-fdc device has to fail).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 hw/pc.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
Kevin Wolf - Nov. 10, 2011, 1:04 p.m.
Am 09.11.2011 22:59, schrieb Peter Maydell:
> Fix a use-while-uninitialized of the fd_type[] array (introduced
> in commit 34d4260e1, noticed by Coverity). This is more theoretical
> than practical, since it's quite hard to get here with floppy==NULL
> (the qdev_try_create() of the isa-fdc device has to fail).
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Thanks, applied to the block-stable branch (for 1.0)

Kevin

Patch

diff --git a/hw/pc.c b/hw/pc.c
index 3015671..33778fe 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -335,7 +335,7 @@  void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
                   ISADevice *s)
 {
     int val, nb, nb_heads, max_track, last_sect, i;
-    FDriveType fd_type[2];
+    FDriveType fd_type[2] = { FDRIVE_DRV_NONE, FDRIVE_DRV_NONE };
     BlockDriverState *fd[MAX_FD];
     static pc_cmos_init_late_arg arg;
 
@@ -385,8 +385,6 @@  void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
                 bdrv_get_floppy_geometry_hint(fd[i], &nb_heads, &max_track,
                                               &last_sect, FDRIVE_DRV_NONE,
                                               &fd_type[i]);
-            } else {
-                fd_type[i] = FDRIVE_DRV_NONE;
             }
         }
     }