summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_contentparser.cpp
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-09-12 16:19:22 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-09-12 16:19:22 +0000
commit657a1aa0700b437bd159007a97c8219c50c461a7 (patch)
tree459aa2803a2115a853c07882de2aefde0402c7b8 /core/fpdfapi/page/cpdf_contentparser.cpp
parent5c86fd4c5110a99606316721786f1ba9bf0d855a (diff)
downloadpdfium-657a1aa0700b437bd159007a97c8219c50c461a7.tar.xz
Set correct stream index when parsing is done in several steps.
When parsing happens in several steps (in pages with > 100 page objects), the position is reset to 0 and the start pointer is advanced. This breaks the calculation of which stream an object belongs to. Passing in the base pointer separately from the start offset allows the correct position to be calculated and the correct stream to be identified. Change-Id: Ic0d5f59f437609158aa97b3c8a18dbd48cd3b0d4 Reviewed-on: https://pdfium-review.googlesource.com/42270 Commit-Queue: Henrique Nakashima <hnakashima@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_contentparser.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_contentparser.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/core/fpdfapi/page/cpdf_contentparser.cpp b/core/fpdfapi/page/cpdf_contentparser.cpp
index f93cf47eb8..2cbac8f447 100644
--- a/core/fpdfapi/page/cpdf_contentparser.cpp
+++ b/core/fpdfapi/page/cpdf_contentparser.cpp
@@ -208,8 +208,7 @@ CPDF_ContentParser::Stage CPDF_ContentParser::Parse() {
if (m_StreamSegmentOffsets.empty())
m_StreamSegmentOffsets.push_back(0);
- m_CurrentOffset += m_pParser->Parse(m_pData.Get() + m_CurrentOffset,
- m_Size - m_CurrentOffset,
+ m_CurrentOffset += m_pParser->Parse(m_pData.Get(), m_Size, m_CurrentOffset,
PARSE_STEP_LIMIT, m_StreamSegmentOffsets);
return Stage::kParse;
}