From b1492b76bafd490ff6c9c9c6efdede9a756a16be Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 18 May 2020 11:09:48 +0200 Subject: Alembic: Fix bad allocation with invalid knots data It is not impossible that the number of knots is stored wrong in the file (for example, it will be 1 knot only). This change fixes bad memory allocation and bad memory access in such cases. It also fixes strict compiler warning which was mentioning that the allocation size is wrong), There isn't really the correct way of dealing with such situation, so simply fall back to Blender's knots calculation. Differential Revision: https://developer.blender.org/D7765 --- source/blender/io/alembic/intern/abc_reader_nurbs.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/io') diff --git a/source/blender/io/alembic/intern/abc_reader_nurbs.cc b/source/blender/io/alembic/intern/abc_reader_nurbs.cc index 10d9a35a8e1..5b9954b3ff6 100644 --- a/source/blender/io/alembic/intern/abc_reader_nurbs.cc +++ b/source/blender/io/alembic/intern/abc_reader_nurbs.cc @@ -71,7 +71,7 @@ bool AbcNurbsReader::valid() const static bool set_knots(const FloatArraySamplePtr &knots, float *&nu_knots) { - if (!knots || knots->size() == 0) { + if (!knots || knots->size() < 2) { return false; } -- cgit v1.2.3