diff --git a/bindings/java/src/org/sleuthkit/datamodel/FileSystem.java b/bindings/java/src/org/sleuthkit/datamodel/FileSystem.java index 45a21b58e30e55f5c554c47d6489f17eee56401a..8dc7dc6465ecf8f6a23b482e4d08d72400308e5c 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/FileSystem.java +++ b/bindings/java/src/org/sleuthkit/datamodel/FileSystem.java @@ -19,6 +19,7 @@ package org.sleuthkit.datamodel; import java.util.List; +import org.apache.commons.lang3.ArrayUtils; /** * Represents a file system object stored in tsk_fs_info table FileSystem has a @@ -69,6 +70,10 @@ public void close() { @Override public int read(byte[] buf, long offset, long len) throws TskCoreException { + Content dataSource = getDataSource(); + if (dataSource instanceof Image && ArrayUtils.isEmpty(((Image) dataSource).getPaths())) { + return 0; + } return SleuthkitJNI.readFs(getFileSystemHandle(), buf, offset, len); } diff --git a/bindings/java/src/org/sleuthkit/datamodel/FsContent.java b/bindings/java/src/org/sleuthkit/datamodel/FsContent.java index 48607515449a400102fd358c74f1e34dd51854de..43b1f5d02cd8476155197f3dabf7ac0df4e912ae 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/FsContent.java +++ b/bindings/java/src/org/sleuthkit/datamodel/FsContent.java @@ -183,6 +183,12 @@ protected synchronized int readInt(byte[] buf, long offset, long len) throws Tsk //special case for 0-size file return 0; } + + Content dataSource = getDataSource(); + if (dataSource instanceof Image && ((Image) dataSource).getPaths() == null || ((Image) dataSource).getPaths().length == 0) { + return 0; + } + loadFileHandle(); return SleuthkitJNI.readFile(fileHandle, buf, offset, len); }