From 4127249bb90d53ce337f5b10a771ea8790515402 Mon Sep 17 00:00:00 2001 From: Project Nayuki Date: Sun, 23 Aug 2026 22:41:05 +0000 Subject: [PATCH] Fixed out-of-bounds array read in fast Java implementation. --- Readme.markdown | 2 +- java-fast/io/nayuki/fastqrcodegen/QrSegmentAdvanced.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.markdown b/Readme.markdown index 3b5f066..f603cbe 100644 --- a/Readme.markdown +++ b/Readme.markdown @@ -69,7 +69,7 @@ for (int y = 0; y < qr1.size; y++) { License ------- -Copyright © 2025 Project Nayuki. (MIT License) +Copyright © 2026 Project Nayuki. (MIT License) [https://www.nayuki.io/page/qr-code-generator-library](https://www.nayuki.io/page/qr-code-generator-library) Permission is hereby granted, free of charge, to any person obtaining a copy of diff --git a/java-fast/io/nayuki/fastqrcodegen/QrSegmentAdvanced.java b/java-fast/io/nayuki/fastqrcodegen/QrSegmentAdvanced.java index 3bc2da1..d2bccd3 100644 --- a/java-fast/io/nayuki/fastqrcodegen/QrSegmentAdvanced.java +++ b/java-fast/io/nayuki/fastqrcodegen/QrSegmentAdvanced.java @@ -130,7 +130,7 @@ public final class QrSegmentAdvanced { charModes[i][0] = modeTypes[0]; } // Extend a segment if possible - if (QrSegment.ALPHANUMERIC_MAP[c] != -1) { // Is alphanumeric + if (c < QrSegment.ALPHANUMERIC_MAP.length && QrSegment.ALPHANUMERIC_MAP[c] != -1) { // Is alphanumeric curCosts[1] = prevCosts[1] + 33; // 5.5 bits per alphanumeric char charModes[i][1] = modeTypes[1]; }