hr = IVdsAdvancedDisk_QueryPartitions(pAdvancedDisk, &prop_array, &prop_array_size);\r
if (hr == S_OK) \r
{\r
+ r = TRUE;\r
for (i = 0; i < prop_array_size; i++) \r
{\r
if (PartNumber == 0 || PartNumber == prop_array[i].ulPartitionNumber)\r
{\r
r = FALSE;\r
VDS_SET_ERROR(hr);\r
- Log("Could not delete partitions: %u", LASTERR);\r
+ Log("Could not delete partitions: 0x%x", LASTERR);\r
+ break;\r
}\r
else \r
{\r
Log("Delete this partitions success");\r
}\r
}\r
- r = TRUE;\r
}\r
else \r
{\r
Log("No partition to delete on disk '%S'", pDiskProp->pwszName);\r
r = TRUE;\r
}\r
- CoTaskMemFree(prop_array);\r
+\r
+ if (prop_array)\r
+ {\r
+ CoTaskMemFree(prop_array);\r
+ }\r
\r
return r;\r
}\r
\r
if (!VDS_DeleteAllPartitions(pPhyDrive->PhyDrive))\r
{\r
- Log("Notice: Could not delete partitions: %u", GetLastError());\r
+ Log("Notice: Could not delete partitions: 0x%x", GetLastError());\r
+ rc = 1;\r
+ goto End;\r
}\r
\r
Log("Deleting all partitions ......................... OK");\r