Message ID | 20190215153600.1770727-1-berrange@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/smbios: fix offset of type 3 sku field | expand |
On Fri, 15 Feb 2019 15:36:00 +0000 Daniel P. Berrangé <berrange@redhat.com> 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 > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Igor Mammedov <imammedo@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;
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é <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@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; >
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;
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 Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> --- hw/smbios/smbios.c | 1 + include/hw/firmware/smbios.h | 1 + 2 files changed, 2 insertions(+)