VirtualBox

Ignore:
Timestamp:
Nov 21, 2024 11:20:08 AM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
166036
Message:

Host Drivers: Linux: vboxdrv: Fix UBSAN warnings, bugref:10585.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h

    r106061 r107080  
    278278 */
    279279#define SUP_IOCTL_QUERY_FUNCS(cFuncs)                   SUP_CTL_CODE_BIG(2)
    280 #define SUP_IOCTL_QUERY_FUNCS_SIZE(cFuncs)              RT_UOFFSETOF_DYN(SUPQUERYFUNCS, u.Out.aFunctions[(cFuncs)])
     280#define SUP_IOCTL_QUERY_FUNCS_SIZE(cFuncs)              (RT_UOFFSETOF_DYN(SUPQUERYFUNCS, u.Out.aFunctions) + \
     281                                                        RT_SIZEOFMEMB(SUPQUERYFUNCS, u.Out.aFunctions) * (cFuncs))
    281282#define SUP_IOCTL_QUERY_FUNCS_SIZE_IN                   sizeof(SUPREQHDR)
    282283#define SUP_IOCTL_QUERY_FUNCS_SIZE_OUT(cFuncs)          SUP_IOCTL_QUERY_FUNCS_SIZE(cFuncs)
     
    361362 */
    362363#define SUP_IOCTL_LDR_LOAD                              SUP_CTL_CODE_BIG(4)
    363 #define SUP_IOCTL_LDR_LOAD_SIZE(cbImage)                RT_MAX(RT_UOFFSETOF_DYN(SUPLDRLOAD, u.In.abImage[cbImage]), SUP_IOCTL_LDR_LOAD_SIZE_OUT)
    364 #define SUP_IOCTL_LDR_LOAD_SIZE_IN(cbImage)             RT_UOFFSETOF_DYN(SUPLDRLOAD, u.In.abImage[cbImage])
     364#define SUP_IOCTL_LDR_LOAD_SIZE_IN(cbImage)             (RT_UOFFSETOF_DYN(SUPLDRLOAD, u.In.abImage) + \
     365                                                        RT_SIZEOFMEMB(SUPLDRLOAD, u.In.abImage) * (cbImage))
    365366#define SUP_IOCTL_LDR_LOAD_SIZE_OUT                     (RT_UOFFSETOF(SUPLDRLOAD, u.Out.szError) + RT_SIZEOFMEMB(SUPLDRLOAD, u.Out.szError))
     367#define SUP_IOCTL_LDR_LOAD_SIZE(cbImage)                RT_MAX(SUP_IOCTL_LDR_LOAD_SIZE_IN(cbImage), SUP_IOCTL_LDR_LOAD_SIZE_OUT)
    366368
    367369/**
     
    614616    } u;
    615617    /** The VMMR0Entry request packet. */
    616     uint8_t                 abReqPkt[1];
     618    RT_FLEXIBLE_ARRAY_EXTENSION
     619    uint8_t                 abReqPkt[RT_FLEXIBLE_ARRAY];
    617620} SUPCALLVMMR0, *PSUPCALLVMMR0;
    618621/** @} */
     
    635638 */
    636639#define SUP_IOCTL_LOW_ALLOC                             SUP_CTL_CODE_BIG(8)
    637 #define SUP_IOCTL_LOW_ALLOC_SIZE(cPages)                ((uint32_t)RT_UOFFSETOF_DYN(SUPLOWALLOC, u.Out.aPages[cPages]))
     640#define SUP_IOCTL_LOW_ALLOC_SIZE(cPages)                ((uint32_t)(RT_UOFFSETOF_DYN(SUPLOWALLOC, u.Out.aPages) + \
     641                                                        RT_SIZEOFMEMB(SUPLOWALLOC, u.Out.aPages) * (cPages)))
    638642#define SUP_IOCTL_LOW_ALLOC_SIZE_IN                     (sizeof(SUPREQHDR) + RT_SIZEOFMEMB(SUPLOWALLOC, u.In))
    639643#define SUP_IOCTL_LOW_ALLOC_SIZE_OUT(cPages)            SUP_IOCTL_LOW_ALLOC_SIZE(cPages)
     
    697701 */
    698702#define SUP_IOCTL_PAGE_ALLOC_EX                         SUP_CTL_CODE_BIG(10)
    699 #define SUP_IOCTL_PAGE_ALLOC_EX_SIZE(cPages)            RT_UOFFSETOF_DYN(SUPPAGEALLOCEX, u.Out.aPages[cPages])
     703#define SUP_IOCTL_PAGE_ALLOC_EX_SIZE(cPages)            (RT_UOFFSETOF_DYN(SUPPAGEALLOCEX, u.Out.aPages) + \
     704                                                        RT_SIZEOFMEMB(SUPPAGEALLOCEX, u.Out.aPages) * (cPages))
    700705#define SUP_IOCTL_PAGE_ALLOC_EX_SIZE_IN                 (sizeof(SUPREQHDR) + RT_SIZEOFMEMB(SUPPAGEALLOCEX, u.In))
    701706#define SUP_IOCTL_PAGE_ALLOC_EX_SIZE_OUT(cPages)        SUP_IOCTL_PAGE_ALLOC_EX_SIZE(cPages)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette