From 7dbc357593bdf13c00eec8534c487f1a82088e6d Mon Sep 17 00:00:00 2001 From: orbiter Date: Mon, 13 Sep 2010 07:20:53 +0000 Subject: [PATCH] patch to identify corrupted database files git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7139 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- source/net/yacy/kelondro/blob/HeapReader.java | 1 + 1 file changed, 1 insertion(+) diff --git a/source/net/yacy/kelondro/blob/HeapReader.java b/source/net/yacy/kelondro/blob/HeapReader.java index c21296270..cea13b62b 100644 --- a/source/net/yacy/kelondro/blob/HeapReader.java +++ b/source/net/yacy/kelondro/blob/HeapReader.java @@ -405,6 +405,7 @@ public class HeapReader { // access the file and read the container file.seek(pos); final int len = file.readInt() - index.row().primaryKeyLength; + if (len < 0) throw new IOException("file " + file.file() + " corrupted at " + pos + ": negative len. len = " + len + ", pk.len = " + index.row().primaryKeyLength); if (MemoryControl.available() < len * 2 + keepFreeMem) { if (!MemoryControl.request(len * 2 + keepFreeMem, true)) throw new RowSpaceExceededException(len * 2 + keepFreeMem, "HeapReader.get()"); // not enough memory available for this blob }