mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
Adjust the implementation of strncpy_s() for Linux
This change: - prevents writing memory out of the range of the destination buffer - prevents calling strlen() with non-null terminated c-string - corrects the logic, which validates passed range to proceed when real length fits the destination buffer Related-To: NEO-7264 Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
5bdf758049
commit
dda5b19859
@@ -140,7 +140,7 @@ ze_result_t DriverHandleImp::getExtensionProperties(uint32_t *pCount,
|
||||
for (uint32_t i = 0; i < *pCount; i++) {
|
||||
auto extension = this->extensionsSupported[i];
|
||||
strncpy_s(pExtensionProperties[i].name, ZE_MAX_EXTENSION_NAME,
|
||||
extension.first.c_str(), extension.first.length() + 1);
|
||||
extension.first.c_str(), extension.first.length());
|
||||
pExtensionProperties[i].version = extension.second;
|
||||
}
|
||||
|
||||
|
||||
@@ -474,9 +474,9 @@ ze_result_t KernelImp::getSourceAttributes(uint32_t *pSize, char **pString) {
|
||||
if (pString == nullptr) {
|
||||
*pSize = (uint32_t)desc.kernelMetadata.kernelLanguageAttributes.length() + 1;
|
||||
} else {
|
||||
strncpy_s(*pString, desc.kernelMetadata.kernelLanguageAttributes.length() + 1,
|
||||
strncpy_s(*pString, *pSize,
|
||||
desc.kernelMetadata.kernelLanguageAttributes.c_str(),
|
||||
desc.kernelMetadata.kernelLanguageAttributes.length() + 1);
|
||||
desc.kernelMetadata.kernelLanguageAttributes.length());
|
||||
}
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
@@ -721,7 +721,8 @@ ze_result_t KernelImp::getKernelName(size_t *pSize, char *pName) {
|
||||
|
||||
*pSize = std::min(*pSize, kernelNameSize);
|
||||
strncpy_s(pName, *pSize,
|
||||
this->kernelImmData->getDescriptor().kernelMetadata.kernelName.c_str(), kernelNameSize);
|
||||
this->kernelImmData->getDescriptor().kernelMetadata.kernelName.c_str(),
|
||||
this->kernelImmData->getDescriptor().kernelMetadata.kernelName.size());
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user