VirtualBox

Changeset 4819 in vbox


Ignore:
Timestamp:
Sep 15, 2007 10:05:04 AM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
24526
Message:

Don't assert on invalid handles as it upsets the dprintf2 logging in vboxdrv.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r0drv/memobj-r0drv.cpp

    r4781 r4819  
    154154    /* Validate the object handle. */
    155155    PRTR0MEMOBJINTERNAL pMem;
    156     AssertPtrReturn(MemObj, 0);
     156    if (RT_UNLIKELY(MemObj == NIL_RTR0MEMOBJ))
     157        return NULL;
     158    AssertPtrReturn(MemObj, NULL);
    157159    pMem = (PRTR0MEMOBJINTERNAL)MemObj;
    158     AssertMsgReturn(pMem->u32Magic == RTR0MEMOBJ_MAGIC, ("%p: %#x\n", pMem, pMem->u32Magic), 0);
    159     AssertMsgReturn(pMem->enmType > RTR0MEMOBJTYPE_INVALID && pMem->enmType < RTR0MEMOBJTYPE_END, ("%p: %d\n", pMem, pMem->enmType), 0);
     160    AssertMsgReturn(pMem->u32Magic == RTR0MEMOBJ_MAGIC, ("%p: %#x\n", pMem, pMem->u32Magic), NULL);
     161    AssertMsgReturn(pMem->enmType > RTR0MEMOBJTYPE_INVALID && pMem->enmType < RTR0MEMOBJTYPE_END, ("%p: %d\n", pMem, pMem->enmType), NULL);
    160162
    161163    /* return the mapping address. */
     
    178180RTR0DECL(RTR3PTR) RTR0MemObjAddressR3(RTR0MEMOBJ MemObj)
    179181{
     182    PRTR0MEMOBJINTERNAL pMem;
     183
    180184    /* Validate the object handle. */
    181     PRTR0MEMOBJINTERNAL pMem;
     185    if (RT_UNLIKELY(MemObj == NIL_RTR0MEMOBJ))
     186        return NIL_RTR3PTR;
    182187    AssertPtrReturn(MemObj, NIL_RTR3PTR);
    183188    pMem = (PRTR0MEMOBJINTERNAL)MemObj;
    184189    AssertMsgReturn(pMem->u32Magic == RTR0MEMOBJ_MAGIC, ("%p: %#x\n", pMem, pMem->u32Magic), NIL_RTR3PTR);
    185190    AssertMsgReturn(pMem->enmType > RTR0MEMOBJTYPE_INVALID && pMem->enmType < RTR0MEMOBJTYPE_END, ("%p: %d\n", pMem, pMem->enmType), NIL_RTR3PTR);
    186     AssertMsgReturn(    (   pMem->enmType == RTR0MEMOBJTYPE_MAPPING
    187                          && pMem->u.Mapping.R0Process != NIL_RTR0PROCESS)
    188                     ||  (   pMem->enmType == RTR0MEMOBJTYPE_LOCK
    189                          && pMem->u.Lock.R0Process != NIL_RTR0PROCESS)
    190                     ||  (   pMem->enmType == RTR0MEMOBJTYPE_PHYS_NC
    191                          && pMem->u.Lock.R0Process != NIL_RTR0PROCESS)
    192                     ||  (   pMem->enmType == RTR0MEMOBJTYPE_RES_VIRT
    193                          && pMem->u.ResVirt.R0Process != NIL_RTR0PROCESS),
    194                     ("%p: %d\n", pMem, pMem->enmType), NIL_RTR3PTR);
     191    if (RT_UNLIKELY(    (   pMem->enmType != RTR0MEMOBJTYPE_MAPPING
     192                         || pMem->u.Mapping.R0Process == NIL_RTR0PROCESS)
     193                    &&  (   pMem->enmType != RTR0MEMOBJTYPE_LOCK
     194                         || pMem->u.Lock.R0Process == NIL_RTR0PROCESS)
     195                    &&  (   pMem->enmType != RTR0MEMOBJTYPE_PHYS_NC
     196                         || pMem->u.Lock.R0Process == NIL_RTR0PROCESS)
     197                    &&  (   pMem->enmType != RTR0MEMOBJTYPE_RES_VIRT
     198                         || pMem->u.ResVirt.R0Process == NIL_RTR0PROCESS)))
     199        return NIL_RTR3PTR;
    195200
    196201    /* return the mapping address. */
     
    203208 *
    204209 * @returns The address of the memory object.
    205  * @returns NULL if the handle is invalid (asserts in strict builds) or if there isn't any mapping.
     210 * @returns 0 if the handle is invalid (asserts in strict builds) or if there isn't any mapping.
    206211 * @param   MemObj  The ring-0 memory object handle.
    207212 */
    208213RTR0DECL(size_t) RTR0MemObjSize(RTR0MEMOBJ MemObj)
    209214{
     215    PRTR0MEMOBJINTERNAL pMem;
     216
    210217    /* Validate the object handle. */
    211     PRTR0MEMOBJINTERNAL pMem;
     218    if (RT_UNLIKELY(MemObj == NIL_RTR0MEMOBJ))
     219        return 0;
    212220    AssertPtrReturn(MemObj, 0);
    213221    pMem = (PRTR0MEMOBJINTERNAL)MemObj;
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