1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Text: Improve string validation

- Reject surrogate code points for all unicode encodings
- Prevent out of bounds access in some cases
- Move ASCII and UTF character validation functions to CharacterFunctions
- Add more unit tests
This commit is contained in:
Anthony Nicholls 2024-07-19 15:33:49 +01:00
parent 1dd2b3c90e
commit 0a78fefecb
37 changed files with 723 additions and 50 deletions

View file

@ -1070,8 +1070,11 @@ add_library( ${BINARY_NAME}
"../../../../../modules/juce_core/text/juce_CharacterFunctions.h"
"../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF8_test.cpp"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF16_test.cpp"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF32_test.cpp"
"../../../../../modules/juce_core/text/juce_Identifier.cpp"
"../../../../../modules/juce_core/text/juce_Identifier.h"
"../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"
@ -3274,8 +3277,11 @@ set_source_files_properties(
"../../../../../modules/juce_core/text/juce_CharacterFunctions.h"
"../../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF8_test.cpp"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF16_test.cpp"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"
"../../../../../modules/juce_core/text/juce_CharPointer_UTF32_test.cpp"
"../../../../../modules/juce_core/text/juce_Identifier.cpp"
"../../../../../modules/juce_core/text/juce_Identifier.h"
"../../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"

View file

@ -1357,6 +1357,15 @@
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharacterFunctions.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharPointer_UTF8_test.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharPointer_UTF16_test.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharPointer_UTF32_test.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_Identifier.cpp">
<ExcludedFromBuild>true</ExcludedFromBuild>
</ClCompile>

View file

@ -1948,6 +1948,15 @@
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharacterFunctions.cpp">
<Filter>JUCE Modules\juce_core\text</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharPointer_UTF8_test.cpp">
<Filter>JUCE Modules\juce_core\text</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharPointer_UTF16_test.cpp">
<Filter>JUCE Modules\juce_core\text</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_CharPointer_UTF32_test.cpp">
<Filter>JUCE Modules\juce_core\text</Filter>
</ClCompile>
<ClCompile Include="..\..\..\..\modules\juce_core\text\juce_Identifier.cpp">
<Filter>JUCE Modules\juce_core\text</Filter>
</ClCompile>