[smbios] Avoid reading beyond end of constructed SMBIOS setting

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1206/merge
Michael Brown 2024-07-31 16:20:37 +01:00
parent 0dc8933f67
commit 60d682409e
1 changed files with 7 additions and 0 deletions

View File

@ -130,6 +130,13 @@ static int smbios_fetch ( struct settings *settings __unused,
return rc;
}
/* Limit length */
if ( tag_offset > sizeof ( buf ) ) {
tag_len = 0;
} else if ( ( tag_offset + tag_len ) > sizeof ( buf ) ) {
tag_len = ( sizeof ( buf ) - tag_offset );
}
/* Mangle UUIDs if necessary. iPXE treats UUIDs as
* being in network byte order (big-endian). SMBIOS
* specification version 2.6 states that UUIDs are