diff options
Diffstat (limited to 'writerfilter/source/rtftok/rtftokenizer.cxx')
-rw-r--r-- | writerfilter/source/rtftok/rtftokenizer.cxx | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/writerfilter/source/rtftok/rtftokenizer.cxx b/writerfilter/source/rtftok/rtftokenizer.cxx index 03d5d0d3e56a..0b39232cd983 100644 --- a/writerfilter/source/rtftok/rtftokenizer.cxx +++ b/writerfilter/source/rtftok/rtftokenizer.cxx @@ -182,7 +182,7 @@ void RTFTokenizer::popGroup() { m_nGroup--; } RTFError RTFTokenizer::resolveKeyword() { char ch; - OStringBuffer aBuf; + OStringBuffer aBuf(32); bool bNeg = false; bool bParam = false; int nParam = 0; @@ -202,6 +202,10 @@ RTFError RTFTokenizer::resolveKeyword() while (rtl::isAsciiAlpha(static_cast<unsigned char>(ch))) { aBuf.append(ch); + if (aBuf.getLength() > 32) + // See RTF spec v1.9.1, page 7 + // A control word's name cannot be longer than 32 letters. + throw io::BufferSizeExceededException(); Strm().ReadChar(ch); if (Strm().eof()) { @@ -209,10 +213,6 @@ RTFError RTFTokenizer::resolveKeyword() break; } } - if (aBuf.getLength() > 32) - // See RTF spec v1.9.1, page 7 - // A control word's name cannot be longer than 32 letters. - throw io::BufferSizeExceededException(); if (ch == '-') { |