[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