diff --git a/services/bundlemgr_lite/src/gt_bundle_manager_service.cpp b/services/bundlemgr_lite/src/gt_bundle_manager_service.cpp index fc35e022b40da646c8c984329930c6dec82817b9..9794067b94b35c25625a94b17bb9398b0f1f108d 100755 --- a/services/bundlemgr_lite/src/gt_bundle_manager_service.cpp +++ b/services/bundlemgr_lite/src/gt_bundle_manager_service.cpp @@ -93,10 +93,12 @@ bool GtManagerService::Install(const char *hapPath, const InstallParam *installP // create new bundleInstallMsg bundleInstallMsg_ = reinterpret_cast(AdapterMalloc(sizeof(BundleInstallMsg))); if (bundleInstallMsg_ == nullptr) { + AdapterFree(path); return false; } if (memset_s(bundleInstallMsg_, sizeof(BundleInstallMsg), 0, sizeof(BundleInstallMsg)) != EOK) { AdapterFree(bundleInstallMsg_); + AdapterFree(path); return false; } // set bundleName、label、smallIconPath、bigIconPath in bundleInstallMsg_ @@ -320,6 +322,7 @@ void GtManagerService::InstallAllSystemBundle(InstallerCallback installerCallbac if (!BundleUtil::IsFile(((AppInfoList *)currentNode)->filePath) || !BundleUtil::EndWith(((AppInfoList *)currentNode)->filePath, INSTALL_FILE_SUFFIX)) { + GtManagerService::APP_FreeAllAppInfo(list); return; } (void) Install(((AppInfoList *)currentNode)->filePath, nullptr, installerCallback);