[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
mthole at apple.com
mthole at apple.com
Wed Dec 22 15:27:02 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 61342f57a2f34827b2348df2d53b27c15167e167
Author: mthole at apple.com <mthole at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Nov 3 20:55:18 2010 +0000
Crash under WebCore::platformDefaultLanguage() when using Arabic language
https://bugs.webkit.org/show_bug.cgi?id=48946
Reviewed by Alexey Proskuryakov.
* platform/mac/Language.mm:
(WebCore::createHTTPStyleLanguageCode):
Retain the lowercaseLanguageCode string before returning it. This was the code path that
would lead to a crash. Also removed early return to prevent a leak of preferredLanguageCode.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 5c49ddc..b0e0233 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2010-11-03 Mike Thole <mthole at apple.com>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Crash under WebCore::platformDefaultLanguage() when using Arabic language
+ https://bugs.webkit.org/show_bug.cgi?id=48946
+
+ * platform/mac/Language.mm:
+ (WebCore::createHTTPStyleLanguageCode):
+ Retain the lowercaseLanguageCode string before returning it. This was the code path that
+ would lead to a crash. Also removed early return to prevent a leak of preferredLanguageCode.
+
2010-11-03 Dan Bernstein <mitz at apple.com>
Reviewed by Dave Hyatt.
diff --git a/WebCore/platform/mac/Language.mm b/WebCore/platform/mac/Language.mm
index bb51cb5..7338e0a 100644
--- a/WebCore/platform/mac/Language.mm
+++ b/WebCore/platform/mac/Language.mm
@@ -59,6 +59,7 @@ namespace WebCore {
static NSString *createHTTPStyleLanguageCode(NSString *languageCode)
{
ASSERT(isMainThread());
+ NSString *httpStyleLanguageCode = nil;
// Look up the language code using CFBundle.
CFStringRef preferredLanguageCode = wkCopyCFLocalizationPreferredName((CFStringRef)languageCode);
@@ -70,16 +71,18 @@ static NSString *createHTTPStyleLanguageCode(NSString *languageCode)
NSString *lowercaseLanguageCode = [languageCode lowercaseString];
// Turn a '_' into a '-' if it appears after a 2-letter language code.
- if ([lowercaseLanguageCode length] < 3 || [lowercaseLanguageCode characterAtIndex:2] != '_')
- return lowercaseLanguageCode;
-
- NSMutableString *result = [lowercaseLanguageCode mutableCopy];
- [result replaceCharactersInRange:NSMakeRange(2, 1) withString:@"-"];
-
+ if ([lowercaseLanguageCode length] >= 3 && [lowercaseLanguageCode characterAtIndex:2] == '_') {
+ NSMutableString *mutableLanguageCode = [lowercaseLanguageCode mutableCopy];
+ [mutableLanguageCode replaceCharactersInRange:NSMakeRange(2, 1) withString:@"-"];
+ httpStyleLanguageCode = mutableLanguageCode;
+ }
+ else
+ httpStyleLanguageCode = [lowercaseLanguageCode retain];
+
if (preferredLanguageCode)
CFRelease(preferredLanguageCode);
- return result;
+ return httpStyleLanguageCode;
}
String platformDefaultLanguage()
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list