diff --git a/code/AssetLib/SMD/SMDLoader.cpp b/code/AssetLib/SMD/SMDLoader.cpp index 1c73c7e668..9af871ceed 100644 --- a/code/AssetLib/SMD/SMDLoader.cpp +++ b/code/AssetLib/SMD/SMDLoader.cpp @@ -837,7 +837,10 @@ void SMDImporter::ParseNodeInfo(const char* szCurrent, const char** szCurrentOut unsigned int iBone = 0; SkipSpacesAndLineEnd(szCurrent,&szCurrent); if ( !ParseUnsignedInt(szCurrent,&szCurrent,iBone) || !SkipSpaces(szCurrent,&szCurrent)) { - LogErrorNoThrow("Unexpected EOF/EOL while parsing bone index"); + throw DeadlyImportError("Unexpected EOF/EOL while parsing bone index"); + } + if (iBone == UINT_MAX) { + LogErrorNoThrow("Invalid bone number while parsing bone index"); SMDI_PARSE_RETURN; } // add our bone to the list