| Index: core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
|
| index 02e3617feb2a83789c5890517d28ed8f09dbb6f2..b49607e743f3aa090e8c764a697c871be7a4f348 100644
|
| --- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
|
| +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp
|
| @@ -533,10 +533,11 @@ CFX_ByteString CPDF_StreamParser::ReadString() {
|
| if (!PositionIsInBounds())
|
| return CFX_ByteString();
|
|
|
| - int ch = m_pBuf[m_Pos++];
|
| + uint8_t ch = m_pBuf[m_Pos++];
|
| CFX_ByteTextBuf buf;
|
| int parlevel = 0;
|
| - int status = 0, iEscCode = 0;
|
| + int status = 0;
|
| + int iEscCode = 0;
|
| while (1) {
|
| switch (status) {
|
| case 0:
|
| @@ -560,7 +561,7 @@ CFX_ByteString CPDF_StreamParser::ReadString() {
|
| break;
|
| case 1:
|
| if (ch >= '0' && ch <= '7') {
|
| - iEscCode = FXSYS_toDecimalDigit(ch);
|
| + iEscCode = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
|
| status = 2;
|
| break;
|
| }
|
| @@ -585,7 +586,8 @@ CFX_ByteString CPDF_StreamParser::ReadString() {
|
| break;
|
| case 2:
|
| if (ch >= '0' && ch <= '7') {
|
| - iEscCode = iEscCode * 8 + FXSYS_toDecimalDigit(ch);
|
| + iEscCode =
|
| + iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
|
| status = 3;
|
| } else {
|
| buf.AppendChar(iEscCode);
|
| @@ -595,7 +597,8 @@ CFX_ByteString CPDF_StreamParser::ReadString() {
|
| break;
|
| case 3:
|
| if (ch >= '0' && ch <= '7') {
|
| - iEscCode = iEscCode * 8 + FXSYS_toDecimalDigit(ch);
|
| + iEscCode =
|
| + iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
|
| buf.AppendChar(iEscCode);
|
| status = 0;
|
| } else {
|
| @@ -617,7 +620,7 @@ CFX_ByteString CPDF_StreamParser::ReadString() {
|
| ch = m_pBuf[m_Pos++];
|
| }
|
| if (PositionIsInBounds())
|
| - ch = m_pBuf[m_Pos++];
|
| + ++m_Pos;
|
|
|
| if (buf.GetLength() > MAX_STRING_LENGTH) {
|
| return CFX_ByteString(buf.GetBuffer(), MAX_STRING_LENGTH);
|
|
|