diff --git a/INSTALL/Ventoy2Disk.exe b/INSTALL/Ventoy2Disk.exe index 6a705132..008d3d3d 100644 Binary files a/INSTALL/Ventoy2Disk.exe and b/INSTALL/Ventoy2Disk.exe differ diff --git a/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c b/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c index 38800c69..7fd3f111 100644 --- a/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c +++ b/Ventoy2Disk/Ventoy2Disk/DiskService_vds.c @@ -383,6 +383,7 @@ STATIC BOOL VDS_CallBack_DeletePartition(void *pInterface, VDS_DISK_PROP *pDiskP hr = IVdsAdvancedDisk_QueryPartitions(pAdvancedDisk, &prop_array, &prop_array_size); if (hr == S_OK) { + r = TRUE; for (i = 0; i < prop_array_size; i++) { if (PartNumber == 0 || PartNumber == prop_array[i].ulPartitionNumber) @@ -402,21 +403,25 @@ STATIC BOOL VDS_CallBack_DeletePartition(void *pInterface, VDS_DISK_PROP *pDiskP { r = FALSE; VDS_SET_ERROR(hr); - Log("Could not delete partitions: %u", LASTERR); + Log("Could not delete partitions: 0x%x", LASTERR); + break; } else { Log("Delete this partitions success"); } } - r = TRUE; } else { Log("No partition to delete on disk '%S'", pDiskProp->pwszName); r = TRUE; } - CoTaskMemFree(prop_array); + + if (prop_array) + { + CoTaskMemFree(prop_array); + } return r; } diff --git a/Ventoy2Disk/Ventoy2Disk/PhyDrive.c b/Ventoy2Disk/Ventoy2Disk/PhyDrive.c index a916d155..570f28ea 100644 --- a/Ventoy2Disk/Ventoy2Disk/PhyDrive.c +++ b/Ventoy2Disk/Ventoy2Disk/PhyDrive.c @@ -1657,7 +1657,9 @@ int InstallVentoy2PhyDrive(PHY_DRIVE_INFO *pPhyDrive, int PartStyle, int TryId) if (!VDS_DeleteAllPartitions(pPhyDrive->PhyDrive)) { - Log("Notice: Could not delete partitions: %u", GetLastError()); + Log("Notice: Could not delete partitions: 0x%x", GetLastError()); + rc = 1; + goto End; } Log("Deleting all partitions ......................... OK");