From 6a5820d3a2e607bd2687d1bd77b3283ed2d6bbf4 Mon Sep 17 00:00:00 2001 From: Azaezel Date: Mon, 1 Aug 2016 17:22:19 -0500 Subject: [PATCH] navmesh file load error-fix don't try to read 0 length buffers --- Engine/source/navigation/navMesh.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Engine/source/navigation/navMesh.cpp b/Engine/source/navigation/navMesh.cpp index db70d1cc3..49c0f9283 100644 --- a/Engine/source/navigation/navMesh.cpp +++ b/Engine/source/navigation/navMesh.cpp @@ -1593,12 +1593,15 @@ bool NavMesh::load() S32 s; file.read(sizeof(S32), (char*)&s); setLinkCount(s); - file.read(sizeof(F32) * s * 6, (char*)const_cast(mLinkVerts.address())); - file.read(sizeof(F32) * s, (char*)const_cast(mLinkRads.address())); - file.read(sizeof(U8) * s, (char*)const_cast(mLinkDirs.address())); - file.read(sizeof(U8) * s, (char*)const_cast(mLinkAreas.address())); - file.read(sizeof(U16) * s, (char*)const_cast(mLinkFlags.address())); - file.read(sizeof(F32) * s, (char*)const_cast(mLinkIDs.address())); + if (s > 0) + { + file.read(sizeof(F32) * s * 6, (char*)const_cast(mLinkVerts.address())); + file.read(sizeof(F32) * s, (char*)const_cast(mLinkRads.address())); + file.read(sizeof(U8) * s, (char*)const_cast(mLinkDirs.address())); + file.read(sizeof(U8) * s, (char*)const_cast(mLinkAreas.address())); + file.read(sizeof(U16) * s, (char*)const_cast(mLinkFlags.address())); + file.read(sizeof(F32) * s, (char*)const_cast(mLinkIDs.address())); + } mLinksUnsynced.fill(false); mLinkSelectStates.fill(Unselected); mDeleteLinks.fill(false);