From 5a764fff042cd21756681bd08fe3afc172e3e070 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Mon, 18 Jan 2021 19:44:10 +0100 Subject: [PATCH 1/2] Fix overflow in aiString --- include/assimp/types.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/assimp/types.h b/include/assimp/types.h index 74763d496..0e50ed0ae 100644 --- a/include/assimp/types.h +++ b/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; From 11ee9d367321ea175f9f2917a26db9f7b7e66ef3 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Mon, 18 Jan 2021 19:46:32 +0100 Subject: [PATCH 2/2] Update types.h --- include/assimp/types.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/assimp/types.h b/include/assimp/types.h index 0e50ed0ae..99527dcc2 100644 --- a/include/assimp/types.h +++ b/include/assimp/types.h @@ -305,7 +305,7 @@ struct aiString { /** Copy a const char* to the aiString */ void Set(const char *sz) { - const ai_int32 len = (ai_uint32)::strlen(sz); + ai_int32 len = (ai_uint32)::strlen(sz); if (len > (ai_int32)MAXLEN - 1) { len = (ai_int32) MAXLEN - 1; }