summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2009-06-26 12:21:00 -0400
committerCary Clark <cary@android.com>2009-06-26 12:21:00 -0400
commit14d2a338a0dd9fe7f2e7833ce90aed2f6eef6e34 (patch)
tree7d4e4bd1e785cc6f5f043703c825bc42b508a421
parentd768f1ca00f12b3fe6d0b90a47fb00f1f8decd83 (diff)
downloadexternal_webkit-14d2a338a0dd9fe7f2e7833ce90aed2f6eef6e34.zip
external_webkit-14d2a338a0dd9fe7f2e7833ce90aed2f6eef6e34.tar.gz
external_webkit-14d2a338a0dd9fe7f2e7833ce90aed2f6eef6e34.tar.bz2
Add security fix as seen in http://trac.webkit.org/changeset/44799
-rw-r--r--WebCore/html/HTMLTokenizer.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/WebCore/html/HTMLTokenizer.cpp b/WebCore/html/HTMLTokenizer.cpp
index b01d4e4..a3bd787 100644
--- a/WebCore/html/HTMLTokenizer.cpp
+++ b/WebCore/html/HTMLTokenizer.cpp
@@ -879,7 +879,9 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de
}
} else {
// FIXME: We should eventually colorize entities by sending them as a special token.
- checkBuffer(11);
+ // 12 bytes required: up to 10 bytes in m_cBuffer plus the
+ // leading '&' and trailing ';'
+ checkBuffer(12);
*dest++ = '&';
for (unsigned i = 0; i < cBufferPos; i++)
dest[i] = m_cBuffer[i];
@@ -890,7 +892,9 @@ HTMLTokenizer::State HTMLTokenizer::parseEntity(SegmentedString& src, UChar*& de
}
}
} else {
- checkBuffer(10);
+ // 11 bytes required: up to 10 bytes in m_cBuffer plus the
+ // leading '&'
+ checkBuffer(11);
// ignore the sequence, add it to the buffer as plaintext
*dest++ = '&';
for (unsigned i = 0; i < cBufferPos; i++)