From 7919d050e8c17e8bb5160f04813aec648c78e870 Mon Sep 17 00:00:00 2001 From: Greg DiCristofaro <gregd@basistech.com> Date: Wed, 20 Sep 2023 16:21:20 -0400 Subject: [PATCH] read no bytes when image path is missing --- bindings/java/src/org/sleuthkit/datamodel/FileSystem.java | 5 +++++ bindings/java/src/org/sleuthkit/datamodel/FsContent.java | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/bindings/java/src/org/sleuthkit/datamodel/FileSystem.java b/bindings/java/src/org/sleuthkit/datamodel/FileSystem.java index 45a21b58e..8dc7dc646 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 486075154..43b1f5d02 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); } -- GitLab