fix infinite loops when rebuild the cross reference table
BUG=chromium:401189
Review URL: https://codereview.chromium.org/1871373002
diff --git a/core/fpdfapi/fpdf_parser/cpdf_parser.cpp b/core/fpdfapi/fpdf_parser/cpdf_parser.cpp
index 97b03f0..f1816f2 100644
--- a/core/fpdfapi/fpdf_parser/cpdf_parser.cpp
+++ b/core/fpdfapi/fpdf_parser/cpdf_parser.cpp
@@ -931,9 +931,9 @@
}
pos += size;
- // If the position has not changed at all in a loop iteration, then break
- // out to prevent infinite looping.
- if (pos == saved_pos)
+ // If the position has not changed at all or went backwards in a loop
+ // iteration, then break out to prevent infinite looping.
+ if (pos <= saved_pos)
break;
}