LWO: validate enum value before parsing it

- Check for valid enum values
- closes https://github.com/assimp/assimp/issues/4236
kimkulling-lwo-enum-validation_issue4236
Kim Kulling 2022-02-07 09:08:22 +01:00 committed by GitHub
parent ecfb9757d0
commit 8602c7c035
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 2 deletions

View File

@ -83,9 +83,13 @@ AnimResolver::AnimResolver(std::list<Envelope> &_envelopes, double tick) :
(*it).old_first = 0; (*it).old_first = 0;
(*it).old_last = (*it).keys.size() - 1; (*it).old_last = (*it).keys.size() - 1;
if ((*it).keys.empty()) continue; if ((*it).keys.empty()) {
continue;
}
if ((int)(*it).type < 1 || (int)(*it).type>EnvelopeType_Unknown) {
continue;
}
switch ((*it).type) { switch ((*it).type) {
// translation // translation
case LWO::EnvelopeType_Position_X: case LWO::EnvelopeType_Position_X:
trans_x = &*it; trans_x = &*it;