david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[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 <m.herweg@gmx.de>
This commit is contained in:
Michael Brown 2008-06-11 13:43:58 +01:00
parent c3811d4a13
commit 031b30898a
1 changed files with 2 additions and 4 deletions

View File

@ -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;
}
}