VirtualBox

Ignore:
Timestamp:
Oct 15, 2008 6:07:59 PM (16 years ago)
Author:
vboxsync
Message:

#3230: Fixed memory leaks in VMDK, tstVD and VBoxHDD-new.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/testcase/tstVD.cpp

    r13268 r13295  
    3232#include "stdlib.h"
    3333
     34#define VHD_TEST
     35#define VDI_TEST
     36#define VMDK_TEST
     37
    3438/*******************************************************************************
    3539*   Global Variables                                                           *
     
    6771        if (VBOX_FAILURE(rc)) \
    6872        { \
    69             VDCloseAll(pVD); \
     73            VDDestroy(pVD); \
    7074            return rc; \
    7175        } \
     
    103107    }
    104108
     109    VDDestroy(pVD);
    105110#undef CHECK
    106111    return 0;
     
    123128        if (VBOX_FAILURE(rc)) \
    124129        { \
    125             VDCloseAll(pVD); \
     130            VDDestroy(pVD); \
    126131            return rc; \
    127132        } \
     
    154159    }
    155160
     161    VDDestroy(pVD);
    156162#undef CHECK
    157163    return 0;
     
    505511        if (VBOX_FAILURE(rc)) \
    506512        { \
    507             VDCloseAll(pVD); \
     513            if (pvBuf) \
     514                RTMemFree(pvBuf); \
     515            VDDestroy(pVD); \
    508516            return rc; \
    509517        } \
    510518    } while (0)
     519
     520    void *pvBuf = RTMemAlloc(_1M);
    511521
    512522    /* Create error interface. */
     
    558568    PSEGMENT paMergeSegments = (PSEGMENT)RTMemAllocZ(sizeof(struct Segment) * (nSegments + 1) * 3);
    559569
    560     void *pvBuf = RTMemAlloc(_1M);
    561 
    562570    RNDCTX ctx;
    563571    initializeRandomGenerator(&ctx, u32Seed);
     
    600608    VDDumpImages(pVD);
    601609
    602     VDCloseAll(pVD);
     610    VDDestroy(pVD);
     611    if (pvBuf)
     612        RTMemFree(pvBuf);
    603613#undef CHECK
    604614    return 0;
     
    625635        if (VBOX_FAILURE(rc)) \
    626636        { \
    627             VDCloseAll(pVD); \
     637            VDDestroy(pVD); \
    628638            return rc; \
    629639        } \
     
    681691    RTMemFree(paSegments);
    682692
    683     VDCloseAll(pVD);
     693    VDDestroy(pVD);
    684694#undef CHECK
    685695    return 0;
     
    700710        if (VBOX_FAILURE(rc)) \
    701711        { \
    702             VDCloseAll(pVD); \
     712            VDDestroy(pVD); \
    703713            return rc; \
    704714        } \
     
    722732    CHECK("VDCopy()");
    723733
    724     VDCloseAll(pVD);
     734    VDDestroy(pVD);
    725735#undef CHECK
    726736    return 0;
     
    884894    }
    885895
     896#ifdef VMDK_TEST
    886897    rc = tstVDCreateDelete("VMDK", "tmpVDCreate.vmdk", 2 * _4G,
    887898                           VD_IMAGE_TYPE_NORMAL, VD_IMAGE_FLAGS_NONE,
     
    906917        g_cErrors++;
    907918    }
    908 #if 1
     919
    909920    tstVmdk();
    910 #endif
    911 #if 1
     921#endif /* VMDK_TEST */
     922#ifdef VDI_TEST
    912923    rc = tstVDCreateDelete("VDI", "tmpVDCreate.vdi", 2 * _4G,
    913924                           VD_IMAGE_TYPE_NORMAL, VD_IMAGE_FLAGS_NONE,
     
    926937        g_cErrors++;
    927938    }
    928 #endif
     939#endif /* VDI_TEST */
     940#ifdef VMDK_TEST
    929941    rc = tstVDCreateDelete("VMDK", "tmpVDCreate.vmdk", 2 * _4G,
    930942                           VD_IMAGE_TYPE_NORMAL, VD_IMAGE_FLAGS_NONE,
     
    959971        g_cErrors++;
    960972    }
    961 #if 1
     973#endif /* VMDK_TEST */
     974#ifdef VHD_TEST
    962975    rc = tstVDCreateDelete("VHD", "tmpVDCreate.vhd", 2 * _4G,
    963976                           VD_IMAGE_TYPE_NORMAL, VD_IMAGE_FLAGS_NONE,
     
    976989        g_cErrors++;
    977990    }
    978 
     991#endif /* VHD_TEST */
     992#ifdef VDI_TEST
    979993    rc = tstVDOpenCreateWriteMerge("VDI", "tmpVDBase.vdi", "tmpVDDiff.vdi", u32Seed);
    980994    if (VBOX_FAILURE(rc))
     
    9891003        g_cErrors++;
    9901004    }
     1005#endif /* VDI_TEST */
     1006#ifdef VMDK_TEST
    9911007    rc = tstVDOpenCreateWriteMerge("VMDK", "tmpVDBase.vmdk", "tmpVDDiff.vmdk", u32Seed);
    9921008    if (VBOX_FAILURE(rc))
     
    10011017        g_cErrors++;
    10021018    }
    1003 
     1019#endif /* VMDK_TEST */
     1020#ifdef VHD_TEST
    10041021    rc = tstVDCreateWriteOpenRead("VHD", "tmpVDCreate.vhd", u32Seed);
    10051022    if (VBOX_FAILURE(rc))
     
    10151032        g_cErrors++;
    10161033    }
    1017 #endif
     1034#endif /* VHD_TEST */
    10181035
    10191036    /*
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