On 2/15/19 4:36 PM, Daniel P. Berrangé wrote: > The type 3 SMBIOS structure[1] ends with fields > > ... > 0x14 - contained element count > 0x15 - contained element record length > 0x16 - sku number > > The smbios_type_3 struct missed the contained element record > length field, causing sku number to be reported at the wrong > offset. > > [1] > https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.1.1.pdf >
Fixes: e41fca3da72 > Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > hw/smbios/smbios.c | 1 + > include/hw/firmware/smbios.h | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c > index 818be8a838..47be9071fa 100644 > --- a/hw/smbios/smbios.c > +++ b/hw/smbios/smbios.c > @@ -563,6 +563,7 @@ static void smbios_build_type_3_table(void) > t->height = 0; > t->number_of_power_cords = 0; > t->contained_element_count = 0; > + t->contained_element_record_length = 0; > SMBIOS_TABLE_SET_STR(3, sku_number_str, type3.sku); > > SMBIOS_BUILD_TABLE_POST; > diff --git a/include/hw/firmware/smbios.h b/include/hw/firmware/smbios.h > index eeb5a4d7b6..6fef32a3c9 100644 > --- a/include/hw/firmware/smbios.h > +++ b/include/hw/firmware/smbios.h > @@ -162,6 +162,7 @@ struct smbios_type_3 { > uint8_t height; > uint8_t number_of_power_cords; > uint8_t contained_element_count; > + uint8_t contained_element_record_length; > uint8_t sku_number_str; > /* contained elements follow */ > } QEMU_PACKED; >