[Bf-blender-cvs] [8b3d7f7] alembic_basic_io: Fix crash accessing invalid property headers.
Kévin Dietrich
noreply at git.blender.org
Thu Jun 16 12:54:36 CEST 2016
Commit: 8b3d7f73e349e914dd77955491cd8580688844f4
Author: Kévin Dietrich
Date: Wed Jun 15 19:46:13 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB8b3d7f73e349e914dd77955491cd8580688844f4
Fix crash accessing invalid property headers.
===================================================================
M source/blender/alembic/intern/abc_points.cc
M source/blender/alembic/intern/alembic_capi.cc
===================================================================
diff --git a/source/blender/alembic/intern/abc_points.cc b/source/blender/alembic/intern/abc_points.cc
index b1102df..db5c545 100644
--- a/source/blender/alembic/intern/abc_points.cc
+++ b/source/blender/alembic/intern/abc_points.cc
@@ -161,12 +161,14 @@ void AbcPointsReader::readObjectData(Main *bmain, Scene *scene, float time)
utils::mesh_add_verts(mesh, positions->size());
ICompoundProperty prop = m_schema.getArbGeomParams();
-
- const IN3fArrayProperty &normals_prop = IN3fArrayProperty(prop, "N", time);
N3fArraySamplePtr vnormals;
- if (normals_prop) {
- vnormals = normals_prop.getValue(sample_sel);
+ if (prop.valid()) {
+ const IN3fArrayProperty &normals_prop = IN3fArrayProperty(prop, "N", time);
+
+ if (normals_prop) {
+ vnormals = normals_prop.getValue(sample_sel);
+ }
}
read_mverts(mesh->mvert, positions, vnormals);
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index 757daa0..2ed1213 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -708,12 +708,14 @@ static DerivedMesh *read_points_sample(DerivedMesh *dm, const IObject &iobject,
}
ICompoundProperty prop = schema.getArbGeomParams();
-
- const IN3fArrayProperty &normals_prop = IN3fArrayProperty(prop, "N", 0);
N3fArraySamplePtr vnormals;
- if (normals_prop) {
- vnormals = normals_prop.getValue(sample_sel);
+ if (prop.valid()) {
+ const IN3fArrayProperty &normals_prop = IN3fArrayProperty(prop, "N", 0);
+
+ if (normals_prop) {
+ vnormals = normals_prop.getValue(sample_sel);
+ }
}
MVert *mverts = dm->getVertArray(dm);
More information about the Bf-blender-cvs
mailing list