summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorSean Owen <srowen@gmail.com>2021-09-18 05:46:37 +0300
committerSean Owen <srowen@gmail.com>2021-09-18 05:46:37 +0300
commitbe2c5bdd883f9f42e794e4b0e7e1b30f436fc0a7 (patch)
treea1fc626dfb8a18291198c36cbcf42c7998d01603 /core/src
parentc6a4e0fa97da88f586fa91baeae472f7f45dffae (diff)
downloadzxing-be2c5bdd883f9f42e794e4b0e7e1b30f436fc0a7.tar.xz
Fix for https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38913
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/java/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/core/src/main/java/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java b/core/src/main/java/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java
index e406e2f00..259345657 100644
--- a/core/src/main/java/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java
+++ b/core/src/main/java/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java
@@ -100,7 +100,7 @@ public final class ReedSolomonDecoder {
GenericGFPoly t = field.getOne();
// Run Euclidean algorithm until r's degree is less than R/2
- while (r.getDegree() >= R / 2) {
+ while (2 * r.getDegree() >= R) {
GenericGFPoly rLastLast = rLast;
GenericGFPoly tLastLast = tLast;
rLast = r;
@@ -125,7 +125,8 @@ public final class ReedSolomonDecoder {
t = q.multiply(tLast).addOrSubtract(tLastLast);
if (r.getDegree() >= rLast.getDegree()) {
- throw new IllegalStateException("Division algorithm failed to reduce polynomial?");
+ throw new IllegalStateException("Division algorithm failed to reduce polynomial? " +
+ "r: " + r + ", rLast: " + rLast);
}
}