Преглед на файлове

Fix overflow in aiString

Kim Kulling преди 4 години
родител
ревизия
5a764fff04
променени са 1 файла, в които са добавени 5 реда и са изтрити 2 реда
  1. 5 2
      include/assimp/types.h

+ 5 - 2
include/assimp/types.h

@@ -307,7 +307,7 @@ struct aiString {
     void Set(const char *sz) {
         const ai_int32 len = (ai_uint32)::strlen(sz);
         if (len > (ai_int32)MAXLEN - 1) {
-            return;
+            len = (ai_int32) MAXLEN - 1;
         }
         length = len;
         memcpy(data, sz, len);
@@ -321,7 +321,10 @@ struct aiString {
         }
 
         length = rOther.length;
-        ;
+        if (length >(MAXLEN - 1)) {
+            length = (ai_int32) MAXLEN - 1;
+        }
+
         memcpy(data, rOther.data, length);
         data[length] = '\0';
         return *this;