summaryrefslogtreecommitdiff
path: root/core/fpdfdoc
diff options
context:
space:
mode:
authorRyan Harrison <rharrison@chromium.org>2017-08-11 16:20:32 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-08-11 21:03:14 +0000
commitddb9b7cdd19b63a81c4a094239e85f84acefaa17 (patch)
tree8657940fb10d76a96ffe996cf17d70a1c65ca6de /core/fpdfdoc
parentd27998f6526272a5b8732106aa9b75f724434aca (diff)
downloadpdfium-ddb9b7cdd19b63a81c4a094239e85f84acefaa17.tar.xz
Add checks of index operations on string classes
Specifically the index parameter passed in to GetAt(), SetAt() and operator[] are now being tested to be in bounds. BUG=chromium:752480, pdfium:828 Change-Id: I9e94d58c98a8eaaaae53cd0e3ffe2123ea17d8c4 Reviewed-on: https://pdfium-review.googlesource.com/10651 Commit-Queue: Ryan Harrison <rharrison@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfdoc')
-rw-r--r--core/fpdfdoc/cpdf_variabletext.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/core/fpdfdoc/cpdf_variabletext.cpp b/core/fpdfdoc/cpdf_variabletext.cpp
index 1fc32946fc..74a5e3adfc 100644
--- a/core/fpdfdoc/cpdf_variabletext.cpp
+++ b/core/fpdfdoc/cpdf_variabletext.cpp
@@ -430,18 +430,16 @@ void CPDF_VariableText::SetText(const CFX_WideString& swText) {
switch (word) {
case 0x0D:
if (m_bMultiLine) {
- if (swText.GetAt(i + 1) == 0x0A)
- i += 1;
-
+ if (i + 1 < sz && swText.GetAt(i + 1) == 0x0A)
+ i++;
wp.AdvanceSection();
AddSection(wp, secinfo);
}
break;
case 0x0A:
if (m_bMultiLine) {
- if (swText.GetAt(i + 1) == 0x0D)
- i += 1;
-
+ if (i + 1 < sz && swText.GetAt(i + 1) == 0x0D)
+ i++;
wp.AdvanceSection();
AddSection(wp, secinfo);
}