From 0806fc2e08f9837275e1e8a666c21e35acad882c Mon Sep 17 00:00:00 2001 From: sidheshenator Date: Wed, 11 Mar 2015 14:55:44 -0400 Subject: [PATCH 1/2] column name checked before executing the query --- .../modules/android/ContactAnalyzer.java | 38 +++++++++++++++---- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java b/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java index f432e8891f..b90fab8d3f 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java +++ b/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java @@ -20,10 +20,12 @@ package org.sleuthkit.autopsy.modules.android; import java.io.File; import java.sql.Connection; +import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import org.sleuthkit.autopsy.casemodule.Case; @@ -89,14 +91,34 @@ class ContactAnalyzer { try { // get display_name, mimetype(email or phone number) and data1 (phonenumber or email address depending on mimetype) //sorted by name, so phonenumber/email would be consecutive for a person if they exist. - resultSet = statement.executeQuery( - "SELECT mimetype,data1, name_raw_contact.display_name AS display_name \n" //NON-NLS - + "FROM raw_contacts JOIN contacts ON (raw_contacts.contact_id=contacts._id) \n" //NON-NLS - + "JOIN raw_contacts AS name_raw_contact ON(name_raw_contact_id=name_raw_contact._id) " //NON-NLS - + "LEFT OUTER JOIN data ON (data.raw_contact_id=raw_contacts._id) \n" //NON-NLS - + "LEFT OUTER JOIN mimetypes ON (data.mimetype_id=mimetypes._id) \n" //NON-NLS - + "WHERE mimetype = 'vnd.android.cursor.item/phone_v2' OR mimetype = 'vnd.android.cursor.item/email_v2'\n" //NON-NLS - + "ORDER BY name_raw_contact.display_name ASC;"); //NON-NLS + // check if contacts.name_raw_contact_id exists. Modify the query accordingly. + Boolean column_found = false; + DatabaseMetaData metadata = connection.getMetaData(); + ResultSet columnListResultSet = metadata.getColumns(null, null, "contacts", null); + while (columnListResultSet.next()) { + if (columnListResultSet.getString("COLUMN_NAME").equals("name_raw_contact_id")) { + column_found = true; + break; + } + } + if (column_found) { + resultSet = statement.executeQuery( + "SELECT mimetype,data1, name_raw_contact.display_name AS display_name \n" //NON-NLS + + "FROM raw_contacts JOIN contacts ON (raw_contacts.contact_id=contacts._id) \n" //NON-NLS + + "JOIN raw_contacts AS name_raw_contact ON(name_raw_contact_id=name_raw_contact._id) " //NON-NLS + + "LEFT OUTER JOIN data ON (data.raw_contact_id=raw_contacts._id) \n" //NON-NLS + + "LEFT OUTER JOIN mimetypes ON (data.mimetype_id=mimetypes._id) \n" //NON-NLS + + "WHERE mimetype = 'vnd.android.cursor.item/phone_v2' OR mimetype = 'vnd.android.cursor.item/email_v2'\n" //NON-NLS + + "ORDER BY name_raw_contact.display_name ASC;"); //NON-NLS + } else { + resultSet = statement.executeQuery( + "SELECT mimetype,data1, raw_contacts.display_name AS display_name \n" //NON-NLS + + "FROM raw_contacts JOIN contacts ON (raw_contacts.contact_id=contacts._id) \n" //NON-NLS + + "LEFT OUTER JOIN data ON (data.raw_contact_id=raw_contacts._id) \n" //NON-NLS + + "LEFT OUTER JOIN mimetypes ON (data.mimetype_id=mimetypes._id) \n" //NON-NLS + + "WHERE mimetype = 'vnd.android.cursor.item/phone_v2' OR mimetype = 'vnd.android.cursor.item/email_v2'\n" //NON-NLS + + "ORDER BY raw_contacts.display_name ASC;"); //NON-NLS + } BlackboardArtifact bba; bba = f.newArtifact(BlackboardArtifact.ARTIFACT_TYPE.TSK_CONTACT); From 4715c178527bf8853877e775cbdcd36a5b31b139 Mon Sep 17 00:00:00 2001 From: Sidhesh Mhatre Date: Fri, 13 Mar 2015 09:27:54 -0400 Subject: [PATCH 2/2] NON-NLS added --- .../sleuthkit/autopsy/modules/android/ContactAnalyzer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java b/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java index b90fab8d3f..8aecacb645 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java +++ b/Core/src/org/sleuthkit/autopsy/modules/android/ContactAnalyzer.java @@ -94,9 +94,9 @@ class ContactAnalyzer { // check if contacts.name_raw_contact_id exists. Modify the query accordingly. Boolean column_found = false; DatabaseMetaData metadata = connection.getMetaData(); - ResultSet columnListResultSet = metadata.getColumns(null, null, "contacts", null); + ResultSet columnListResultSet = metadata.getColumns(null, null, "contacts", null); //NON-NLS while (columnListResultSet.next()) { - if (columnListResultSet.getString("COLUMN_NAME").equals("name_raw_contact_id")) { + if (columnListResultSet.getString("COLUMN_NAME").equals("name_raw_contact_id")) { //NON-NLS column_found = true; break; }