diff options
author | Cary Clark <cary@android.com> | 2009-06-26 12:21:00 -0400 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2009-06-26 12:21:00 -0400 |
commit | 14d2a338a0dd9fe7f2e7833ce90aed2f6eef6e34 (patch) | |
tree | 7d4e4bd1e785cc6f5f043703c825bc42b508a421 /WebCore/html | |
parent | d768f1ca00f12b3fe6d0b90a47fb00f1f8decd83 (diff) | |
download | external_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
Diffstat (limited to 'WebCore/html')
-rw-r--r-- | WebCore/html/HTMLTokenizer.cpp | 8 |
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++) |