From 6e872edcaeb057126a885ca4da3ff972360f6265 Mon Sep 17 00:00:00 2001 From: Anthony Thibault <ajt@hyperlogic.org> Date: Sun, 20 Mar 2016 12:13:54 -0700 Subject: [PATCH] NetworkGeometry: Fix crash for empty geometry/bad FBX versions Interpret empty geometry as an error. --- .../model-networking/src/model-networking/ModelCache.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/model-networking/src/model-networking/ModelCache.cpp b/libraries/model-networking/src/model-networking/ModelCache.cpp index c9ff8e681b..86aa20fa1c 100644 --- a/libraries/model-networking/src/model-networking/ModelCache.cpp +++ b/libraries/model-networking/src/model-networking/ModelCache.cpp @@ -72,11 +72,15 @@ void GeometryReader::run() { const bool grabLightmaps = true; const float lightmapLevel = 1.0f; fbxgeo = readFBX(_data, _mapping, _url.path(), grabLightmaps, lightmapLevel); + if (fbxgeo->meshes.size() == 0 && fbxgeo->joints.size() == 0) { + // empty fbx geometry, indicates error + throw QString("empty geometry, possibly due to an unsupported FBX version"); + } } else if (_url.path().toLower().endsWith(".obj")) { fbxgeo = OBJReader().readOBJ(_data, _mapping, _url); } else { QString errorStr("unsupported format"); - emit onError(NetworkGeometry::ModelParseError, errorStr); + throw errorStr; } emit onSuccess(fbxgeo); } else {