From 0b17dd877e6bbdc21f2f4af7ed63984464ac8ad8 Mon Sep 17 00:00:00 2001 From: apriestman Date: Wed, 3 Feb 2021 13:13:57 -0500 Subject: [PATCH] Copy host into portable case. --- .../portablecase/PortableCaseReportModule.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/modules/portablecase/PortableCaseReportModule.java b/Core/src/org/sleuthkit/autopsy/report/modules/portablecase/PortableCaseReportModule.java index 164c2e0faf..cc2adf377a 100644 --- a/Core/src/org/sleuthkit/autopsy/report/modules/portablecase/PortableCaseReportModule.java +++ b/Core/src/org/sleuthkit/autopsy/report/modules/portablecase/PortableCaseReportModule.java @@ -71,6 +71,7 @@ import org.sleuthkit.datamodel.Content; import org.sleuthkit.datamodel.ContentTag; import org.sleuthkit.datamodel.DataSource; import org.sleuthkit.datamodel.FileSystem; +import org.sleuthkit.datamodel.Host; import org.sleuthkit.datamodel.Image; import org.sleuthkit.datamodel.LocalFilesDataSource; import org.sleuthkit.datamodel.Pool; @@ -1079,12 +1080,20 @@ public class PortableCaseReportModule implements ReportModule { BlackboardArtifact artifactToCopy = (BlackboardArtifact) content; newContent = copyArtifact(parentId, artifactToCopy); } else { + + // Get or create the host (if needed) before beginning transaction. + Host newHost = null; + if (content instanceof DataSource) { + Host oldHost = ((DataSource)content).getHost(); + newHost = portableSkCase.getHostManager().getOrCreateHost(oldHost.getName()); + } + CaseDbTransaction trans = portableSkCase.beginTransaction(); try { if (content instanceof Image) { Image image = (Image) content; newContent = portableSkCase.addImage(image.getType(), image.getSsize(), image.getSize(), image.getName(), - new ArrayList<>(), image.getTimeZone(), image.getMd5(), image.getSha1(), image.getSha256(), image.getDeviceId(), trans); + new ArrayList<>(), image.getTimeZone(), image.getMd5(), image.getSha1(), image.getSha256(), image.getDeviceId(), newHost, trans); } else if (content instanceof VolumeSystem) { VolumeSystem vs = (VolumeSystem) content; newContent = portableSkCase.addVolumeSystem(parentId, vs.getType(), vs.getOffset(), vs.getBlockSize(), trans); @@ -1108,7 +1117,7 @@ public class PortableCaseReportModule implements ReportModule { if (abstractFile instanceof LocalFilesDataSource) { LocalFilesDataSource localFilesDS = (LocalFilesDataSource) abstractFile; - newContent = portableSkCase.addLocalFilesDataSource(localFilesDS.getDeviceId(), localFilesDS.getName(), localFilesDS.getTimeZone(), trans); + newContent = portableSkCase.addLocalFilesDataSource(localFilesDS.getDeviceId(), localFilesDS.getName(), localFilesDS.getTimeZone(), newHost, trans); } else { if (abstractFile.isDir()) { newContent = portableSkCase.addLocalDirectory(parentId, abstractFile.getName(), trans);