summaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authorSean Owen <srowen@gmail.com>2026-07-28 16:28:07 +0300
committerGitHub <noreply@github.com>2026-07-28 16:28:07 +0300
commitab76000b99820ab015ae5752729cd95972e09416 (patch)
tree0688ebd15c5da4bd2de5ca4712a2b76f2c78c4ad /core/src/main/java
parentff54b24b26b1c80a78aa69a9bb0b61bf7c9c5267 (diff)
downloadzxing-ab76000b99820ab015ae5752729cd95972e09416.tar.xz
Fix PDF infinite loop (#2128)
Port of https://github.com/zxing-cpp/zxing-cpp/pull/320
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/com/google/zxing/pdf417/detector/Detector.java3
1 files changed, 2 insertions, 1 deletions
diff --git a/core/src/main/java/com/google/zxing/pdf417/detector/Detector.java b/core/src/main/java/com/google/zxing/pdf417/detector/Detector.java
index cda7f650f..6d578c672 100644
--- a/core/src/main/java/com/google/zxing/pdf417/detector/Detector.java
+++ b/core/src/main/java/com/google/zxing/pdf417/detector/Detector.java
@@ -212,11 +212,12 @@ public final class Detector {
int[] pattern) {
ResultPoint[] result = new ResultPoint[4];
boolean found = false;
+ int minStartRow = startRow;
int[] counters = new int[pattern.length];
for (; startRow < height; startRow += ROW_STEP) {
int[] loc = findGuardPattern(matrix, startColumn, startRow, width, pattern, counters);
if (loc != null) {
- while (startRow > 0) {
+ while (startRow > minStartRow + 1) {
int[] previousRowLoc = findGuardPattern(matrix, startColumn, --startRow, width, pattern, counters);
if (previousRowLoc != null) {
loc = previousRowLoc;