Changeset 103684 in vbox
- Timestamp:
- Mar 5, 2024 3:27:02 PM (7 months ago)
- Location:
- trunk
- Files:
-
- 6 edited
-
include/VBox/VBoxTpG.h (modified) (1 diff)
-
include/VBox/sup.h (modified) (1 diff)
-
src/VBox/HostDrivers/Support/SUPDrv.cpp (modified) (7 diffs)
-
src/VBox/HostDrivers/Support/SUPDrvTracer.cpp (modified) (2 diffs)
-
src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c (modified) (1 diff)
-
src/VBox/VMM/testcase/Makefile.kmk (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxTpG.h
r98103 r103684 229 229 uint8_t fHaveLargeArgs; 230 230 uint8_t abReserved[2]; 231 VTGDESCARG aArgs[1]; 231 RT_FLEXIBLE_ARRAY_EXTENSION 232 VTGDESCARG aArgs[RT_FLEXIBLE_ARRAY]; 232 233 } VTGDESCARGLIST; 233 234 /** Pointer to a VTG argument list descriptor. */ -
trunk/include/VBox/sup.h
r98103 r103684 562 562 * entry is updated. If @c u32Mode is SUPGIPMODE_SYNC_TSC the TSC frequency in 563 563 * @c u64CpuHz is copied to all CPUs. */ 564 SUPGIPCPU aCPUs[1]; 564 RT_FLEXIBLE_ARRAY_EXTENSION 565 SUPGIPCPU aCPUs[RT_FLEXIBLE_ARRAY]; 565 566 } SUPGLOBALINFOPAGE; 566 567 AssertCompileMemberAlignment(SUPGLOBALINFOPAGE, u64NanoTSLastUpdateHz, 8); -
trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp
r101358 r103684 1848 1848 /* validate */ 1849 1849 PSUPLDRLOAD pReq = (PSUPLDRLOAD)pReqHdr; 1850 uint8_t const * const pbSrcImage = pReq->u.In.abImage; 1850 1851 REQ_CHECK_EXPR(Name, pReq->Hdr.cbIn >= SUP_IOCTL_LDR_LOAD_SIZE_IN(32)); 1851 1852 REQ_CHECK_SIZES_EX(SUP_IOCTL_LDR_LOAD, SUP_IOCTL_LDR_LOAD_SIZE_IN(pReq->u.In.cbImageWithEverything), SUP_IOCTL_LDR_LOAD_SIZE_OUT); … … 1876 1877 { 1877 1878 uint32_t i; 1878 PSUPLDRSYM paSyms = (PSUPLDRSYM) &pReq->u.In.abImage[pReq->u.In.offSymbols];1879 PSUPLDRSYM paSyms = (PSUPLDRSYM)(&pbSrcImage[pReq->u.In.offSymbols]); 1879 1880 for (i = 0; i < pReq->u.In.cSymbols; i++) 1880 1881 { … … 1883 1884 REQ_CHECK_EXPR_FMT(paSyms[i].offName < pReq->u.In.cbStrTab, 1884 1885 ("SUP_IOCTL_LDR_LOAD: sym #%ld: name off %#lx (max=%#lx)\n", (long)i, (long)paSyms[i].offName, (long)pReq->u.In.cbImageWithEverything)); 1885 REQ_CHECK_EXPR_FMT(RTStrEnd((char const *) &pReq->u.In.abImage[pReq->u.In.offStrTab + paSyms[i].offName],1886 REQ_CHECK_EXPR_FMT(RTStrEnd((char const *)(&pbSrcImage[pReq->u.In.offStrTab + paSyms[i].offName]), 1886 1887 pReq->u.In.cbStrTab - paSyms[i].offName), 1887 1888 ("SUP_IOCTL_LDR_LOAD: sym #%ld: unterminated name! (%#lx / %#lx)\n", (long)i, (long)paSyms[i].offName, (long)pReq->u.In.cbImageWithEverything)); … … 1891 1892 uint32_t i; 1892 1893 uint32_t offPrevEnd = 0; 1893 PSUPLDRSEG paSegs = (PSUPLDRSEG) &pReq->u.In.abImage[pReq->u.In.offSegments];1894 PSUPLDRSEG paSegs = (PSUPLDRSEG)(&pbSrcImage[pReq->u.In.offSegments]); 1894 1895 for (i = 0; i < pReq->u.In.cSegments; i++) 1895 1896 { … … 5550 5551 { 5551 5552 size_t cbSegments = pImage->cSegments * sizeof(SUPLDRSEG); 5552 pImage->paSegments = (PSUPLDRSEG)RTMemDup(&pReq->u.In.abImage[pReq->u.In.offSegments], cbSegments); 5553 uint8_t const * const pbSrcImage = pReq->u.In.abImage; 5554 pImage->paSegments = (PSUPLDRSEG)RTMemDup(&pbSrcImage[pReq->u.In.offSegments], cbSegments); 5553 5555 if (pImage->paSegments) /* Align the last segment size to avoid upsetting RTR0MemObjProtect. */ /** @todo relax RTR0MemObjProtect */ 5554 5556 pImage->paSegments[pImage->cSegments - 1].cb = RT_ALIGN_32(pImage->paSegments[pImage->cSegments - 1].cb, PAGE_SIZE); … … 5619 5621 if (!pImage->fNative) 5620 5622 { 5623 uint8_t const * const pbSrcImage = pReq->u.In.abImage; 5621 5624 pImage->cbStrTab = pReq->u.In.cbStrTab; 5622 5625 if (pImage->cbStrTab) 5623 5626 { 5624 pImage->pachStrTab = (char *)RTMemDup(&p Req->u.In.abImage[pReq->u.In.offStrTab], pImage->cbStrTab);5627 pImage->pachStrTab = (char *)RTMemDup(&pbSrcImage[pReq->u.In.offStrTab], pImage->cbStrTab); 5625 5628 if (!pImage->pachStrTab) 5626 5629 rc = supdrvLdrLoadError(VERR_NO_MEMORY, pReq, "Out of memory for string table: %#x", pImage->cbStrTab); … … 5632 5635 { 5633 5636 size_t cbSymbols = pImage->cSymbols * sizeof(SUPLDRSYM); 5634 pImage->paSymbols = (PSUPLDRSYM)RTMemDup(&p Req->u.In.abImage[pReq->u.In.offSymbols], cbSymbols);5637 pImage->paSymbols = (PSUPLDRSYM)RTMemDup(&pbSrcImage[pReq->u.In.offSymbols], cbSymbols); 5635 5638 if (!pImage->paSymbols) 5636 5639 rc = supdrvLdrLoadError(VERR_NO_MEMORY, pReq, "Out of memory for symbol table: %#x", cbSymbols); -
trunk/src/VBox/HostDrivers/Support/SUPDrvTracer.cpp
r101358 r103684 97 97 bool fRegistered; 98 98 /** The provider name (for logging purposes). */ 99 char szName[1]; 99 RT_FLEXIBLE_ARRAY_EXTENSION 100 char szName[RT_FLEXIBLE_ARRAY]; 100 101 } SUPDRVTPPROVIDER; 101 102 /** Pointer to the data for a tracepoint provider. */ … … 162 163 uint32_t cProbeLocs; 163 164 /** Ring-0 probe location info. */ 164 SUPDRVPROBELOC aProbeLocs[1]; 165 RT_FLEXIBLE_ARRAY_EXTENSION 166 SUPDRVPROBELOC aProbeLocs[RT_FLEXIBLE_ARRAY]; 165 167 } SUPDRVTRACERUMOD; 166 168 /** Magic value for SUPDRVVTGCOPY. */ -
trunk/src/VBox/Runtime/r0drv/linux/memobj-r0drv-linux.c
r103168 r103684 145 145 size_t cPages; 146 146 /** Array of struct page pointers. (variable size) */ 147 struct page *apPages[1]; 147 RT_FLEXIBLE_ARRAY_EXTENSION 148 struct page *apPages[RT_FLEXIBLE_ARRAY]; 148 149 } RTR0MEMOBJLNX; 149 150 /** Pointer to the linux memory object. */ -
trunk/src/VBox/VMM/testcase/Makefile.kmk
r103081 r103684 1094 1094 -e '/SUPDRVTRACERUSRCTX32_size$$/d' \ 1095 1095 -e '/HMCPU_size$$/d' \ 1096 -e '/SUPGLOBALINFOPAGE_size$$/d' \ 1096 1097 \ 1097 1098 -e '/^\(0x\)\{0,1\}00[0-9a-fA-F]* [aAnN] [^_.]*_size$$/!d' \
Note:
See TracChangeset
for help on using the changeset viewer.

