From 031b30898a098d7bb2d2d14a7639ed060274528a Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 11 Jun 2008 13:43:58 +0100 Subject: [PATCH] [smbios] Fix SMBIOS string fetching A bug in read_smbios_string() was causing the starting offset of the SMBIOS structure to be added twice, resulting in completely the wrong strings being returned. Bug identified by Martin Herweg --- src/arch/i386/firmware/pcbios/smbios.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/arch/i386/firmware/pcbios/smbios.c b/src/arch/i386/firmware/pcbios/smbios.c index aa4f3f32..875d421b 100644 --- a/src/arch/i386/firmware/pcbios/smbios.c +++ b/src/arch/i386/firmware/pcbios/smbios.c @@ -275,14 +275,12 @@ int read_smbios_string ( struct smbios_structure *structure, * smbios_strings struct is constructed so as to * always end on a string boundary. */ - string_len = strlen_user ( smbios.address, - ( structure->offset + offset ) ); + string_len = strlen_user ( smbios.address, offset ); if ( --index == 0 ) { /* Copy string, truncating as necessary. */ if ( len > string_len ) len = string_len; - copy_from_user ( data, smbios.address, - ( structure->offset + offset ), len ); + copy_from_user ( data, smbios.address, offset, len ); return string_len; } }