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