only open case if provider is valid

This commit is contained in:
Greg DiCristofaro 2023-07-20 11:46:52 -04:00
parent 139aaa944b
commit a245a0ebf7
2 changed files with 5 additions and 1 deletions

View File

@ -2729,6 +2729,7 @@ public class Case {
"Case.progressMessage.openingCaseDatabase=Opening case database...",
"# {0} - exception message", "Case.exceptionMessage.couldNotOpenCaseDatabase=Failed to open case database:\n{0}.",
"# {0} - exception message", "Case.exceptionMessage.unsupportedSchemaVersionMessage=Unsupported case database schema version:\n{0}.",
"Case.exceptionMessage.contentProviderCouldNotBeFound=Content provider was specified for the case but could not be loaded.",
"Case.open.exception.multiUserCaseNotEnabled=Cannot open a multi-user case if multi-user cases are not enabled. See Tools, Options, Multi-User."
})
private void openCaseDataBase(ProgressIndicator progressIndicator) throws CaseActionException {
@ -2737,6 +2738,9 @@ public class Case {
String databaseName = metadata.getCaseDatabaseName();
ContentStreamProvider contentProvider = loadContentProvider(metadata.getContentProviderName());
if (StringUtils.isNotBlank(metadata.getContentProviderName()) && contentProvider == null) {
throw new CaseActionException(Bundle.Case_exceptionMessage_contentProviderCouldNotBeFound());
}
if (CaseType.SINGLE_USER_CASE == metadata.getCaseType()) {
caseDb = SleuthkitCase.openCase(metadata.getCaseDatabasePath(), contentProvider);

View File

@ -712,7 +712,7 @@ public final class CaseMetadata {
public String getCaseDatabasePath() throws UnsupportedOperationException {
if (Case.CaseType.SINGLE_USER_CASE == caseType) {
return StringUtils.isBlank(this.caseDatabasePath)
? this.metadataFilePath.resolve(this.caseDatabaseName).toString()
? this.metadataFilePath.getParent().resolve(this.caseDatabaseName).toString()
: this.caseDatabasePath;
} else {
throw new UnsupportedOperationException();