{\r
CHAR8 *OptionalStrStart;\r
CHAR8 *StrStart;\r
+ UINT8 *SkuNumberField;\r
UINTN RecordLength;\r
UINTN ManuStrLen;\r
UINTN VerStrLen;\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
(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