From e6e02019699b589f930f6ccfc810f2c185af748a Mon Sep 17 00:00:00 2001 From: Marko Arandjelovic Date: Fri, 13 Dec 2024 13:40:42 +0200 Subject: [PATCH] SWDEV-499927 - Added nullptr checks to prevent segfaults Change-Id: I6c721340d195f803a48187009d714c94587f098d [ROCm/hipother commit: d38eb853a0efdf7404f463b75af7d31fddf45960] --- .../nvidia_detail/nvidia_hip_runtime_api.h | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h b/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h index d5347684e8..769f4f9d56 100644 --- a/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h +++ b/projects/hipother/hipnv/include/hip/nvidia_detail/nvidia_hip_runtime_api.h @@ -2883,18 +2883,25 @@ inline static hipError_t hipMemExportToShareableHandle(void* shareableHandle, unsigned long long flags) { return hipCUResultTohipError(cuMemExportToShareableHandle(shareableHandle, handle, (CUmemAllocationHandleType)handleType, flags)); } -inline static hipError_t hipMemGetAccess(unsigned long long* flags, - const hipMemLocation* location, +inline static hipError_t hipMemGetAccess(unsigned long long* flags, const hipMemLocation* location, hipDeviceptr_t ptr) { - CUmemLocation loc = hipMemLocationToCUmemLocation(location); - return hipCUResultTohipError(cuMemGetAccess(flags, &loc, ptr)); + if (location == NULL) { + return hipCUResultTohipError(cuMemGetAccess(flags, NULL, ptr)); + } else { + CUmemLocation loc = hipMemLocationToCUmemLocation(location); + return hipCUResultTohipError(cuMemGetAccess(flags, &loc, ptr)); + } } -inline static hipError_t hipMemGetAllocationPropertiesFromHandle(hipMemAllocationProp* prop, - hipMemGenericAllocationHandle_t handle) { - CUmemAllocationProp cuProp; - auto err = cuMemGetAllocationPropertiesFromHandle(&cuProp, handle); - *prop = CUmemAllocationPropToHipMemAllocationProp(&cuProp); - return hipCUResultTohipError(err); +inline static hipError_t hipMemGetAllocationPropertiesFromHandle( + hipMemAllocationProp* prop, hipMemGenericAllocationHandle_t handle) { + if (prop == NULL) { + return hipCUResultTohipError(cuMemGetAllocationPropertiesFromHandle(NULL, handle)); + } else { + CUmemAllocationProp cuProp; + auto result = cuMemGetAllocationPropertiesFromHandle(&cuProp, handle); + *prop = CUmemAllocationPropToHipMemAllocationProp(&cuProp); + return hipCUResultTohipError(result); + } } inline static hipError_t hipMemImportFromShareableHandle(hipMemGenericAllocationHandle_t* handle, void* osHandle,