From fd513b48467cd09ecef4d158faecd8644c701026 Mon Sep 17 00:00:00 2001 From: Nikhil Talpallikar Date: Fri, 1 Aug 2025 10:27:09 -0700 Subject: [PATCH] Fix null pointer refrence issue with cuda driver API function pointers in case cuInit fails --- .../matrixMulDynlinkJIT/cuda_drvapi_dynlink.c | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Samples/0_Introduction/matrixMulDynlinkJIT/cuda_drvapi_dynlink.c b/Samples/0_Introduction/matrixMulDynlinkJIT/cuda_drvapi_dynlink.c index 8adc4d87..a38afc8d 100644 --- a/Samples/0_Introduction/matrixMulDynlinkJIT/cuda_drvapi_dynlink.c +++ b/Samples/0_Introduction/matrixMulDynlinkJIT/cuda_drvapi_dynlink.c @@ -345,17 +345,6 @@ CUresult CUDAAPI cuInit(unsigned int Flags, int cudaVersion) CHECKED_CALL(LOAD_LIBRARY(&CudaDrvLib)); - // cuInit is required; alias it to _cuInit - GET_PROC_EX(cuInit, _cuInit, 1); - CHECKED_CALL(_cuInit(Flags)); - - // available since 2.2. if not present, version 1.0 is assumed - GET_PROC_OPTIONAL(cuDriverGetVersion); - - if (cuDriverGetVersion) { - CHECKED_CALL(cuDriverGetVersion(&driverVer)); - } - // fetch all function pointers GET_PROC(cuDeviceGet); GET_PROC(cuDeviceGetCount); @@ -620,5 +609,16 @@ CUresult CUDAAPI cuInit(unsigned int Flags, int cudaVersion) #endif } + // cuInit is required; alias it to _cuInit + GET_PROC_EX(cuInit, _cuInit, 1); + CHECKED_CALL(_cuInit(Flags)); + + // available since 2.2. if not present, version 1.0 is assumed + GET_PROC_OPTIONAL(cuDriverGetVersion); + + if (cuDriverGetVersion) { + CHECKED_CALL(cuDriverGetVersion(&driverVer)); + } + return CUDA_SUCCESS; }