From ead772324e0fb9df502022397d06150c218c9d21 Mon Sep 17 00:00:00 2001 From: uvealonso <39194608+uvealonso@users.noreply.github.com> Date: Sun, 25 Aug 2019 23:01:33 +0100 Subject: Fix #7704: [OSX] Handle malformed UTF8 strings --- src/os/macosx/string_osx.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/os/macosx') 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); -- cgit v1.2.3-54-g00ecf