From 9881cac2dac5b4a95a8deb98f244d97993fe7643 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Wed, 10 Jul 2024 23:17:30 +0200 Subject: [PATCH] (index-reader) Correctly handle negative offset values When wordOffset(...) returns a negative value, it means the word isn't present in the index, and we should abort. --- .../java/nu/marginalia/index/PrioReverseIndexReader.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/index/index-reverse/java/nu/marginalia/index/PrioReverseIndexReader.java b/code/index/index-reverse/java/nu/marginalia/index/PrioReverseIndexReader.java index 4b6944ae..bf1214e5 100644 --- a/code/index/index-reverse/java/nu/marginalia/index/PrioReverseIndexReader.java +++ b/code/index/index-reverse/java/nu/marginalia/index/PrioReverseIndexReader.java @@ -81,6 +81,9 @@ public class PrioReverseIndexReader { long offset = wordOffset(termId); + if (offset < 0) // No documents + return 0; + ByteBuffer buffer = ByteBuffer.allocate(4); try { documentsChannel.read(buffer, offset);