SWDEV-442126 - Fix use_after_free case in ExtractFatBinaryUsingCOMGR
Change-Id: Ie07cf82025b65e4f95d4ce3cf46a6b8081f29b6a
Этот коммит содержится в:
коммит произвёл
Maneesh Gupta
родитель
b366a7c992
Коммит
c4b9442fc4
@@ -115,7 +115,7 @@ void ListAllDeviceWithNoCOFromBundle(const std::unordered_map<std::string,
|
||||
}
|
||||
|
||||
hipError_t FatBinaryInfo::ExtractFatBinaryUsingCOMGR(const std::vector<hip::Device*>& devices) {
|
||||
amd_comgr_data_t data_object;
|
||||
amd_comgr_data_t data_object {0};
|
||||
amd_comgr_status_t comgr_status = AMD_COMGR_STATUS_SUCCESS;
|
||||
hipError_t hip_status = hipSuccess;
|
||||
amd_comgr_code_object_info_t* query_list_array = nullptr;
|
||||
@@ -266,12 +266,6 @@ hipError_t FatBinaryInfo::ExtractFatBinaryUsingCOMGR(const std::vector<hip::Devi
|
||||
fatbin_dev_info_[device->deviceId()]->program_
|
||||
= new amd::Program(*(device->asContext()));
|
||||
}
|
||||
|
||||
if ((comgr_status = amd_comgr_release_data(data_object)) != AMD_COMGR_STATUS_SUCCESS) {
|
||||
LogPrintfError("Releasing COMGR data failed with status %d ", comgr_status);
|
||||
return hipErrorInvalidValue;
|
||||
}
|
||||
|
||||
} while(0);
|
||||
|
||||
// Clean up file and memory resouces if hip_status failed for some reason.
|
||||
@@ -292,7 +286,9 @@ hipError_t FatBinaryInfo::ExtractFatBinaryUsingCOMGR(const std::vector<hip::Devi
|
||||
fdesc_ = 0;
|
||||
fsize_ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (data_object.handle) {
|
||||
if ((comgr_status = amd_comgr_release_data(data_object)) != AMD_COMGR_STATUS_SUCCESS) {
|
||||
LogPrintfError("Releasing COMGR data failed with status %d ", comgr_status);
|
||||
return hipErrorInvalidValue;
|
||||
|
||||
Ссылка в новой задаче
Block a user