Fix error in aiString documentation. MAXLEN includes the terminal NULL. This is unusual, but true.
Fix overflow vulnerability in SceneCombiner. Thanks to Krishty to point it out. git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@683 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
6a2a542986
commit
685d2b83c5
|
@ -62,6 +62,12 @@ inline void PrefixString(aiString& string,const char* prefix, unsigned int len)
|
||||||
if (string.length >= 1 && string.data[0] == '$')
|
if (string.length >= 1 && string.data[0] == '$')
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (len+string.length>=MAXLEN-1) {
|
||||||
|
DefaultLogger::get()->debug("Can't add an unique prefix because the string is too long");
|
||||||
|
ai_assert(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Add the prefix
|
// Add the prefix
|
||||||
::memmove(string.data+len,string.data,string.length+1);
|
::memmove(string.data+len,string.data,string.length+1);
|
||||||
::memcpy (string.data, prefix, len);
|
::memcpy (string.data, prefix, len);
|
||||||
|
|
|
@ -230,7 +230,8 @@ struct aiColor3D
|
||||||
* UTF-8 strings to their working character set (i.e. MBCS, WideChar).
|
* UTF-8 strings to their working character set (i.e. MBCS, WideChar).
|
||||||
*
|
*
|
||||||
* We use this representation instead of std::string to be C-compatible. The
|
* We use this representation instead of std::string to be C-compatible. The
|
||||||
* (binary) length of such a string is limited to MAXLEN characters (excluding the 0).
|
* (binary) length of such a string is limited to MAXLEN characters (including the
|
||||||
|
* the terminating zero).
|
||||||
*/
|
*/
|
||||||
struct aiString
|
struct aiString
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue