From 1cae7cba114f49c47b5be2b35e13bc2883171878 Mon Sep 17 00:00:00 2001 From: Brian Carrier Date: Wed, 5 Sep 2018 16:22:02 -0400 Subject: [PATCH] fix out of bounds exception for live triag drive JIRA-4183 --- .../autopsy/core/AutopsyOptionProcessor.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/core/AutopsyOptionProcessor.java b/Core/src/org/sleuthkit/autopsy/core/AutopsyOptionProcessor.java index bf7cb7cd99..41961bf4f3 100644 --- a/Core/src/org/sleuthkit/autopsy/core/AutopsyOptionProcessor.java +++ b/Core/src/org/sleuthkit/autopsy/core/AutopsyOptionProcessor.java @@ -41,6 +41,7 @@ public class AutopsyOptionProcessor extends OptionProcessor { private static final Logger logger = Logger.getLogger(AutopsyOptionProcessor.class.getName()); private final Option liveAutopsyOption = Option.optionalArgument('l', "liveAutopsy"); + // @@@ We should centralize where we store this. It is defined in 2 other places. private final static String PROP_BASECASE = "LBL_BaseCase_PATH"; @@ -56,13 +57,20 @@ public class AutopsyOptionProcessor extends OptionProcessor { if(values.containsKey(liveAutopsyOption)){ try { RuntimeProperties.setRunningInTarget(true); - String[] dir= values.get(liveAutopsyOption); - String directory = dir == null ? PlatformUtil.getUserDirectory().toString() : dir[0]; - ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, PROP_BASECASE, directory); + + // get the starting folder to store cases in + String[] argDirs= values.get(liveAutopsyOption); + String startingCaseDir; + if (argDirs == null || argDirs.length == 0) { + startingCaseDir = PlatformUtil.getUserDirectory().toString(); + } + else { + startingCaseDir = argDirs[0]; + } + ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, PROP_BASECASE, startingCaseDir); } catch (RuntimeProperties.RuntimePropertiesException ex) { logger.log(Level.SEVERE, ex.getMessage(), ex); } } } - }