[Merge M63] Make sure that iterator stays in bounds during IsHypen

TBR=dsinclair@chromium.org
BUG=chromium:782596,chromium:781804

Change-Id: I020be3cf813221bb8314f045d83014a25cb9a950
Reviewed-on: https://pdfium-review.googlesource.com/18070
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-on: https://pdfium-review.googlesource.com/18350
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 0a7a39f..d528c69 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -1226,20 +1226,17 @@
     return false;
 
   auto iter = curText.rbegin();
-  for (; iter != curText.rend() && *iter == 0x20; iter++) {
+  for (; (iter + 1) != curText.rend() && *iter == 0x20; iter++) {
     // Do nothing
   }
 
-  if (iter != curText.rend()) {
-    if (!IsHyphenCode(*iter))
-      return false;
+  if (!IsHyphenCode(*iter))
+    return false;
+
+  if ((iter + 1) != curText.rend()) {
     iter++;
     if (FXSYS_iswalpha(*iter) && FXSYS_iswalpha(*iter))
       return true;
-  } else {
-    iter--;
-    if (!IsHyphenCode(*iter))
-      return false;
   }
 
   const PAGECHAR_INFO* preInfo;