Title: [112357] trunk/Source/WebCore
Revision
112357
Author
[email protected]
Date
2012-03-27 19:42:05 -0700 (Tue, 27 Mar 2012)

Log Message

[Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
https://bugs.webkit.org/show_bug.cgi?id=82411

Reviewed by Kent Tamura.

SimpleFontDataSkia::platformInit() could call widthForGlyph(), which
accesses m_zeroWidthSpaceGlyph. This causes a valgrind memcheck error
because m_zeroWidthSpaceGlyph isn't initialized at this point.
Initialize m_zeroWidthSpaceGlyph with zero so that widthForGlyph() can
return appropriate value(The value zero here means "unknown glyph").

No new tests. I manually confirmed this change fixes the valgrind
memcheck error.

* platform/graphics/skia/SimpleFontDataSkia.cpp:
(WebCore::SimpleFontData::platformInit):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (112356 => 112357)


--- trunk/Source/WebCore/ChangeLog	2012-03-28 02:29:21 UTC (rev 112356)
+++ trunk/Source/WebCore/ChangeLog	2012-03-28 02:42:05 UTC (rev 112357)
@@ -1,3 +1,22 @@
+2012-03-27  Kenichi Ishibashi  <[email protected]>
+
+        [Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
+        https://bugs.webkit.org/show_bug.cgi?id=82411
+
+        Reviewed by Kent Tamura.
+
+        SimpleFontDataSkia::platformInit() could call widthForGlyph(), which
+        accesses m_zeroWidthSpaceGlyph. This causes a valgrind memcheck error
+        because m_zeroWidthSpaceGlyph isn't initialized at this point.
+        Initialize m_zeroWidthSpaceGlyph with zero so that widthForGlyph() can
+        return appropriate value(The value zero here means "unknown glyph").
+
+        No new tests. I manually confirmed this change fixes the valgrind
+        memcheck error.
+
+        * platform/graphics/skia/SimpleFontDataSkia.cpp:
+        (WebCore::SimpleFontData::platformInit):
+
 2012-03-27  YoungTaeck Song  <[email protected]>
 
         [EFL][WK2] Add RunLoopEfl and WorkQueueEfl

Modified: trunk/Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp (112356 => 112357)


--- trunk/Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp	2012-03-28 02:29:21 UTC (rev 112356)
+++ trunk/Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp	2012-03-28 02:42:05 UTC (rev 112357)
@@ -139,8 +139,14 @@
             static const UChar32 xChar = 'x';
             const Glyph xGlyph = glyphPageZero->glyphDataForCharacter(xChar).glyph;
 
-            if (xGlyph)
+            if (xGlyph) {
+                // In widthForGlyph(), xGlyph will be compared with
+                // m_zeroWidthSpaceGlyph, which isn't initialized yet here.
+                // Initialize it with zero to make sure widthForGlyph() returns
+                // the right width.
+                m_zeroWidthSpaceGlyph = 0;
                 m_avgCharWidth = widthForGlyph(xGlyph);
+            }
         }
     }
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to