summaryrefslogtreecommitdiff
path: root/src/os
diff options
context:
space:
mode:
Diffstat (limited to 'src/os')
-rw-r--r--src/os/macosx/string_osx.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/os/macosx/string_osx.cpp b/src/os/macosx/string_osx.cpp
index 6d90b91a8..4c33d5497 100644
--- a/src/os/macosx/string_osx.cpp
+++ b/src/os/macosx/string_osx.cpp
@@ -306,6 +306,13 @@ int MacOSStringCompare(const char *s1, const char *s2)
CFStringRef cf1 = CFStringCreateWithCString(kCFAllocatorDefault, s1, kCFStringEncodingUTF8);
CFStringRef cf2 = CFStringCreateWithCString(kCFAllocatorDefault, s2, kCFStringEncodingUTF8);
+ /* If any CFString could not be created (e.g., due to UTF8 invalid chars), return OS unsupported functionality */
+ if (cf1 == nullptr || cf2 == nullptr) {
+ if (cf1 != nullptr) CFRelease(cf1);
+ if (cf2 != nullptr) CFRelease(cf2);
+ return 0;
+ }
+
CFComparisonResult res = CFStringCompareWithOptionsAndLocale(cf1, cf2, CFRangeMake(0, CFStringGetLength(cf1)), flags, _osx_locale);
CFRelease(cf1);