summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-01-23 11:52:54 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-23 12:45:19 +0100
commit3a94b1a765225089e710e11626ecee20de516ec6 (patch)
treed7a86d6634b9f274a556d9504c1a48f70177d5cd /Source
parent28b2bb706534bc641f475dbc3e5cf32b9f39fb8c (diff)
downloadqtwebkit-3a94b1a765225089e710e11626ecee20de516ec6.tar.gz
Fixing memory read after free in CanvasRenderingContext2D::accessFont
https://bugs.webkit.org/show_bug.cgi?id=106244 Reviewed by Abhishek Arya. Using a temporary String object to hold ref count on string that is passed by reference in CanvasRenderingContext2D::accessFont. Test: fast/canvas/canvas-measureText.html * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::accessFont): Change-Id: Icfab9c7b7e870af9ca9ba05a1b803b51a9a329ad Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'Source')
-rw-r--r--Source/WebCore/ChangeLog15
-rw-r--r--Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp9
2 files changed, 22 insertions, 2 deletions
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 1117245f6..80c72adf5 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2013-01-07 Justin Novosad <junov@google.com>
+
+ Fixing memory read after free in CanvasRenderingContext2D::accessFont
+ https://bugs.webkit.org/show_bug.cgi?id=106244
+
+ Reviewed by Abhishek Arya.
+
+ Using a temporary String object to hold ref count on string that is
+ passed by reference in CanvasRenderingContext2D::accessFont.
+
+ Test: fast/canvas/canvas-measureText.html
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::accessFont):
+
2013-01-17 Poul Sysolyatin <psytonx@gmail.com>
32-bit build for Qt5 on Mac OS fails.
diff --git a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 3eb38a105..8899830c0 100644
--- a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -2363,8 +2363,13 @@ const Font& CanvasRenderingContext2D::accessFont()
{
canvas()->document()->updateStyleIfNeeded();
- if (!state().m_realizedFont)
- setFont(state().m_unparsedFont);
+ if (!state().m_realizedFont) {
+ // Create temporary string object to hold ref count in case
+ // state().m_unparsedFont in unreffed by call to realizeSaves in
+ // setFont.
+ String unparsedFont(state().m_unparsedFont);
+ setFont(unparsedFont);
+ }
return state().m_font;
}