summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/wuhei
diff options
context:
space:
mode:
authorTom Cooks <tommasogagliardi+github@gmail.com>2026-09-30 08:11:24 -0400
committerTom Cooks <tommasogagliardi+github@gmail.com>2026-09-30 08:11:24 -0400
commite15b89af9889d94eca15380048fc2bf6bbc8e22e (patch)
tree082741a74856fe65204c1cd589c5f53d54f625bf /app/src/main/java/com/wuhei
parent68402ebbdacfc95e40bd856caa8c4cb83bef8342 (diff)
downloadreccoon-e15b89af9889d94eca15380048fc2bf6bbc8e22e.tar.gz
Fix transcription: streaming resampler trim could overrun the buffer (1.3.1-alpha)
The resampler clamped nothing before Arrays.copyOfRange(buffer, drop, length), so when the fractional read position overshot the buffer end, drop could be length+1 and the copy threw IllegalArgumentException: 8194 > 8193. This broke every transcription (base and tiny, any language). Clamp drop to buffer.length.
Diffstat (limited to 'app/src/main/java/com/wuhei')
-rw-r--r--app/src/main/java/com/wuhei/reccoon/TranscriptionEngine.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/app/src/main/java/com/wuhei/reccoon/TranscriptionEngine.java b/app/src/main/java/com/wuhei/reccoon/TranscriptionEngine.java
index f4306ff..efee8dd 100644
--- a/app/src/main/java/com/wuhei/reccoon/TranscriptionEngine.java
+++ b/app/src/main/java/com/wuhei/reccoon/TranscriptionEngine.java
@@ -383,6 +383,9 @@ public final class TranscriptionEngine {
}
int drop = (int) position;
+ if (drop > buffer.length) {
+ drop = buffer.length;
+ }
if (drop > 0) {
buffer = Arrays.copyOfRange(buffer, drop, buffer.length);
position -= drop;