Bläddra i källkod

LWO: validate enum value before parsing it

- Check for valid enum values
- closes https://github.com/assimp/assimp/issues/4236
Kim Kulling 3 år sedan
förälder
incheckning
8602c7c035
1 ändrade filer med 6 tillägg och 2 borttagningar
  1. 6 2
      code/AssetLib/LWO/LWOAnimation.cpp

+ 6 - 2
code/AssetLib/LWO/LWOAnimation.cpp

@@ -83,9 +83,13 @@ AnimResolver::AnimResolver(std::list<Envelope> &_envelopes, double tick) :
         (*it).old_first = 0;
         (*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) {
-
         // translation
         case LWO::EnvelopeType_Position_X:
             trans_x = &*it;