Changeset 93952 in vbox
- Timestamp:
- Feb 25, 2022 2:24:07 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevFwCommon.cpp
r93528 r93952 489 489 N_("Configuration error: Querying \"" name "\" as a string failed")); \ 490 490 } \ 491 elseif (!strcmp(szBuf, "<EMPTY>")) \491 if (!strcmp(szBuf, "<EMPTY>")) \ 492 492 pszTmp = ""; \ 493 493 else \ … … 499 499 { \ 500 500 variable = iStrNr++; \ 501 size_t cStr = strlen(pszTmp) + 1; \ 502 DMI_CHECK_SIZE(cStr); \ 503 memcpy(pszStr, pszTmp, cStr); \ 504 pszStr += cStr ; \ 501 size_t const cbStr = strlen(pszTmp) + 1; \ 502 DMI_CHECK_SIZE(cbStr); \ 503 pszStr = (char *)mempcpy(pszStr, pszTmp, cbStr); \ 505 504 } \ 506 505 } … … 529 528 } 530 529 531 #define DMI_START_STRUCT(tbl) \ 532 pszStr = (char *)(tbl + 1); \ 533 iStrNr = 1; 534 535 #define DMI_TERM_STRUCT \ 536 { \ 530 #define DMI_START_STRUCT(a_pTbl) do { \ 531 pszStr = (char *)((a_pTbl) + 1); \ 532 iStrNr = 1; \ 533 } while (0) 534 535 #if 0 /* GCC 11.2.1 barfs on this: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=] */ 536 # define DMI_TERM_STRUCT do { \ 537 537 *pszStr++ = '\0'; /* terminate set of text strings */ \ 538 538 if (iStrNr == 1) \ 539 539 *pszStr++ = '\0'; /* terminate a structure without strings */ \ 540 } 540 } while (0) 541 #else 542 # define DMI_TERM_STRUCT do { \ 543 size_t const cbToZero = iStrNr == 1 ? 2 : 1; \ 544 pszStr = (char *)memset(pszStr, 0, cbToZero) + cbToZero; \ 545 } while (0) 546 #endif 541 547 542 548 bool fForceDefault = false; … … 730 736 PDMICHASSIS pChassis = (PDMICHASSIS)pszStr; 731 737 DMI_CHECK_SIZE(sizeof(*pChassis)); 732 pszStr = (char *)&pChassis->u32OEMdefined;738 pszStr = (char *)&pChassis->u32OEMdefined; 733 739 iStrNr = 1; 734 740 #ifdef VBOX_WITH_DMI_CHASSIS … … 781 787 pProcessorInf->u8SocketDesignation = iStrNr++; 782 788 { 783 size_t cStr = strlen(szSocket) + 1; 784 DMI_CHECK_SIZE(cStr); 785 memcpy(pszStr, szSocket, cStr); 786 pszStr += cStr; 789 size_t cbStr = strlen(szSocket) + 1; 790 DMI_CHECK_SIZE(cbStr); 791 pszStr = (char *)mempcpy(pszStr, szSocket, cbStr); 787 792 } 788 793 pProcessorInf->u8ProcessorType = 0x03; /* Central Processor */
Note:
See TracChangeset
for help on using the changeset viewer.