From: Michael Brown Date: Wed, 11 Jun 2008 12:43:58 +0000 (+0100) Subject: [smbios] Fix SMBIOS string fetching X-Git-Tag: v0.9.4~128 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=031b30898a098d7bb2d2d14a7639ed060274528a;p=thirdparty%2Fipxe.git [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 --- diff --git a/src/arch/i386/firmware/pcbios/smbios.c b/src/arch/i386/firmware/pcbios/smbios.c index aa4f3f329..875d421b4 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; } }