[Bf-blender-cvs] [8caeae9f40a] master: Fix crash if OptiX context creation fails in Cycles

Patrick Mours noreply at git.blender.org
Thu Nov 28 17:07:29 CET 2019


Commit: 8caeae9f40abe942030a5b4c269a3e4b1a601021
Author: Patrick Mours
Date:   Thu Nov 28 17:06:56 2019 +0100
Branches: master
https://developer.blender.org/rB8caeae9f40abe942030a5b4c269a3e4b1a601021

Fix crash if OptiX context creation fails in Cycles

When encountering an error during context creation, the "OptiXDevice" constructor aborts early.
This means the "cuda_stream" vector is never resized and the destructor iterated over non-existent data.

===================================================================

M	intern/cycles/device/device_optix.cpp

===================================================================

diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp
index 3ef954ab27f..ae3ab7e1fc2 100644
--- a/intern/cycles/device/device_optix.cpp
+++ b/intern/cycles/device/device_optix.cpp
@@ -290,8 +290,8 @@ class OptiXDevice : public Device {
         optixPipelineDestroy(pipelines[i]);
 
     // Destroy launch streams
-    for (int i = 0; i < info.cpu_threads; ++i)
-      cuStreamDestroy(cuda_stream[i]);
+    for (CUstream stream : cuda_stream)
+      cuStreamDestroy(stream);
 
     // Destroy OptiX and CUDA context
     optixDeviceContextDestroy(context);



More information about the Bf-blender-cvs mailing list