[Bf-blender-cvs] [b7a92fa75e5] soc-2018-hair-shader: Protect against OSL alloc's null pointer dereference
L. E. Segovia
noreply at git.blender.org
Thu May 31 14:43:03 CEST 2018
Commit: b7a92fa75e56c2b76968e523892bfb7ee9a6f19e
Author: L. E. Segovia
Date: Thu May 31 12:42:28 2018 +0000
Branches: soc-2018-hair-shader
https://developer.blender.org/rBb7a92fa75e56c2b76968e523892bfb7ee9a6f19e
Protect against OSL alloc's null pointer dereference
(I got this one in MSVC)
Ref T54796
===================================================================
M intern/cycles/kernel/osl/osl_closures.cpp
===================================================================
diff --git a/intern/cycles/kernel/osl/osl_closures.cpp b/intern/cycles/kernel/osl/osl_closures.cpp
index 5dd1da01c16..b4f0230d425 100644
--- a/intern/cycles/kernel/osl/osl_closures.cpp
+++ b/intern/cycles/kernel/osl/osl_closures.cpp
@@ -212,11 +212,22 @@ public:
void setup(ShaderData *sd, int path_flag, float3 weight)
{
- if(!skip(sd, path_flag, LABEL_GLOSSY)) {
+ if(!skip(sd, path_flag, LABEL_GLOSSY))
+ {
PrincipledHairBSDF *bsdf = (PrincipledHairBSDF*)bsdf_alloc_osl(sd, sizeof(PrincipledHairBSDF), weight, ¶ms);
+ if (!bsdf)
+ {
+ return;
+ }
+
PrincipledHairExtra *extra = (PrincipledHairExtra*)closure_alloc_extra(sd, sizeof(PrincipledHairExtra));
+ if (!extra)
+ {
+ return;
+ }
+
bsdf->extra = extra;
- sd->flag |= (bsdf) ? bsdf_principled_hair_setup(sd, bsdf) : 0;
+ sd->flag |= (bsdf && extra) ? bsdf_principled_hair_setup(sd, bsdf) : 0;
}
}
};
More information about the Bf-blender-cvs
mailing list