firewire: core: fix an information leak
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 19 Feb 2010 20:00:02 +0000 (21:00 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Dec 2010 21:26:49 +0000 (13:26 -0800)
commit 137d9ebfdbaa45c01f9f0f6d5121ae6f1eb942bd upstream.

If a device exposes a sparsely populated configuration ROM,
firewire-core's sysfs interface and character device file interface
showed random data in the gaps between config ROM blocks.  Fix this by
zero-initialization of the config ROM reader's scratch buffer.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: maximilian attems <max@stro.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/firewire/core-device.c

index 9d0dfcbe2c1c82561bf1f026bac88f08324b3037..17e2b1740202a3921edde10eeeec757cdaedd5e5 100644 (file)
@@ -463,6 +463,7 @@ static int read_bus_info_block(struct fw_device *device, int generation)
                return -ENOMEM;
 
        stack = &rom[READ_BIB_ROM_SIZE];
+       memset(rom, 0, sizeof(*rom) * READ_BIB_ROM_SIZE);
 
        device->max_speed = SCODE_100;