Commit: d958ab62e760641056a56eb6521077556018a4b8
Author: Brecht Van Lommel
Date:   Fri Aug 14 13:42:33 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rBd958ab62e760641056a56eb6521077556018a4b8

Fix NULL pointer access in render engine reported by address sanitizer

This may not have caused an actual bug.

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

M       source/blender/render/intern/source/external_engine.c

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

diff --git a/source/blender/render/intern/source/external_engine.c 
b/source/blender/render/intern/source/external_engine.c
index 075202e8a79..0790d40d56c 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -513,15 +513,15 @@ void RE_engine_active_view_set(RenderEngine *engine, 
const char *viewname)
 
 float RE_engine_get_camera_shift_x(RenderEngine *engine, Object *camera, bool 
use_spherical_stereo)
 {
-  Render *re = engine->re;
-
   /* When using spherical stereo, get camera shift without multiview,
    * leaving stereo to be handled by the engine. */
-  if (use_spherical_stereo) {
-    re = NULL;
+  Render *re = engine->re;
+  if (use_spherical_stereo || re == NULL) {
+    return BKE_camera_multiview_shift_x(NULL, camera, NULL);
+  }
+  else {
+    return BKE_camera_multiview_shift_x(&re->r, camera, re->viewname);
   }
-
-  return BKE_camera_multiview_shift_x(re ? &re->r : NULL, camera, 
re->viewname);
 }
 
 void RE_engine_get_camera_model_matrix(RenderEngine *engine,
@@ -529,16 +529,15 @@ void RE_engine_get_camera_model_matrix(RenderEngine 
*engine,
                                        bool use_spherical_stereo,
                                        float *r_modelmat)
 {
-  Render *re = engine->re;
-
   /* When using spherical stereo, get model matrix without multiview,
    * leaving stereo to be handled by the engine. */
-  if (use_spherical_stereo) {
-    re = NULL;
+  Render *re = engine->re;
+  if (use_spherical_stereo || re == NULL) {
+    BKE_camera_multiview_model_matrix(NULL, camera, NULL, 
(float(*)[4])r_modelmat);
+  }
+  else {
+    BKE_camera_multiview_model_matrix(&re->r, camera, re->viewname, 
(float(*)[4])r_modelmat);
   }
-
-  BKE_camera_multiview_model_matrix(
-      re ? &re->r : NULL, camera, re->viewname, (float(*)[4])r_modelmat);
 }
 
 bool RE_engine_get_spherical_stereo(RenderEngine *engine, Object *camera)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to