VirtualBox

Changeset 78337 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 26, 2019 8:30:19 PM (6 years ago)
Author:
vboxsync
Message:

IPRT/memsafer: Added RTMemSaferGetSize.

Location:
trunk/src/VBox/Runtime
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/generic/memsafer-generic.cpp

    r76553 r78337  
    150150    if (pv)
    151151    {
    152         Assert(cb);
     152        Assert(cb); /* does not support openssl. */
    153153        void *pvStart = (char *)pv - RTMEMSAFER_PAD_BEFORE;
    154154        AssertMsg(*(size_t *)pvStart == cb, ("*pvStart=%#zx cb=%#zx\n", *(size_t *)pvStart, cb));
  • trunk/src/VBox/Runtime/r3/memsafer-r3.cpp

    r78335 r78337  
    442442        PRTMEMSAFERNODE pThis = rtMemSaferNodeRemove(pv);
    443443        AssertReturnVoid(pThis);
    444         AssertMsg(cb == pThis->cbUser, ("cb=%#zx != %#zx\n", cb, pThis->cbUser));
     444        if (cb == 0) /* for openssl use */
     445            cb = pThis->cbUser;
     446        else
     447            AssertMsg(cb == pThis->cbUser, ("cb=%#zx != %#zx\n", cb, pThis->cbUser));
    445448
    446449        /*
     
    485488}
    486489RT_EXPORT_SYMBOL(RTMemSaferFree);
     490
     491
     492RTDECL(size_t) RTMemSaferGetSize(void *pv) RT_NO_THROW_DEF
     493{
     494    size_t cbRet = 0;
     495    if (pv)
     496    {
     497        void *pvKey = rtMemSaferScramblePointer(pv);
     498        RTCritSectRwEnterShared(&g_MemSaferCritSect);
     499        PRTMEMSAFERNODE pThis = (PRTMEMSAFERNODE)RTAvlPVGet(&g_pMemSaferTree, pvKey);
     500        if (pThis)
     501            cbRet = pThis->cbUser;
     502        RTCritSectRwLeaveShared(&g_MemSaferCritSect);
     503    }
     504    return cbRet;
     505}
     506RT_EXPORT_SYMBOL(RTMemSaferGetSize);
    487507
    488508
Note: See TracChangeset for help on using the changeset viewer.

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