summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
bbeb1be)
The calculation of the chassis SKU number field was being calculated
incorrectly, forgetting that there's one element already present in
the structure.
Fix the calculation and improve code readability by introducing a
SkuNumberField variable.
Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
{\r
CHAR8 *OptionalStrStart;\r
CHAR8 *StrStart;\r
{\r
CHAR8 *OptionalStrStart;\r
CHAR8 *StrStart;\r
+ UINT8 *SkuNumberField;\r
UINTN RecordLength;\r
UINTN ManuStrLen;\r
UINTN VerStrLen;\r
UINTN RecordLength;\r
UINTN ManuStrLen;\r
UINTN VerStrLen;\r
ChaNumStrLen = StrLen (ChassisSkuNumber);\r
\r
ContainedElementCount = InputData->ContainedElementCount;\r
ChaNumStrLen = StrLen (ChassisSkuNumber);\r
\r
ContainedElementCount = InputData->ContainedElementCount;\r
-\r
- if (ContainedElementCount > 1) {\r
- ExtendLength = (ContainedElementCount - 1) * sizeof (CONTAINED_ELEMENT);\r
- }\r
+ ExtendLength = ContainedElementCount * sizeof (CONTAINED_ELEMENT);\r
\r
//\r
// Two zeros following the last string.\r
\r
//\r
// Two zeros following the last string.\r
(VOID)CopyMem (SmbiosRecord + 1, &ContainedElements, ExtendLength);\r
\r
//ChassisSkuNumber\r
(VOID)CopyMem (SmbiosRecord + 1, &ContainedElements, ExtendLength);\r
\r
//ChassisSkuNumber\r
- *((UINT8 *)SmbiosRecord + sizeof (SMBIOS_TABLE_TYPE3) + ExtendLength) = 5;\r
+ SkuNumberField = (UINT8 *)SmbiosRecord +\r
+ sizeof (SMBIOS_TABLE_TYPE3) -\r
+ sizeof (CONTAINED_ELEMENT) + ExtendLength;\r
+\r
+ *SkuNumberField = 5;\r
\r
OptionalStrStart = (CHAR8 *)((UINT8 *)SmbiosRecord + sizeof (SMBIOS_TABLE_TYPE3) +\r
ExtendLength + 1);\r
\r
OptionalStrStart = (CHAR8 *)((UINT8 *)SmbiosRecord + sizeof (SMBIOS_TABLE_TYPE3) +\r
ExtendLength + 1);\r