Skip to content

Commit

Permalink
abstract 'get file name from path' method
Browse files Browse the repository at this point in the history
  • Loading branch information
dickfickling committed May 8, 2012
1 parent 82e33b3 commit aab182f
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 96 deletions.
6 changes: 4 additions & 2 deletions bindings/java/jni/dataModel_SleuthkitJNI.cpp
Expand Up @@ -205,7 +205,7 @@ JNIEXPORT void JNICALL

TSK_HDB_OPEN_ENUM flags = TSK_HDB_OPEN_IDXONLY;
TSK_HDB_INFO * temp = tsk_hdb_open(pathT, flags);
strncpy(temp->db_name, nameT, strlen(nameT));
strncpy(temp->db_name, nameT, strlen(nameT)+1);
nsrls.push_back(temp);

env->ReleaseStringUTFChars(nameJ, nameT);
Expand All @@ -231,7 +231,7 @@ JNIEXPORT void JNICALL

TSK_HDB_OPEN_ENUM flags = TSK_HDB_OPEN_IDXONLY;
TSK_HDB_INFO * temp = tsk_hdb_open(pathT, flags);
strncpy(temp->db_name, nameT, strlen(nameT));
strncpy(temp->db_name, nameT, strlen(nameT)+1);
knownbads.push_back(temp);

env->ReleaseStringUTFChars(nameJ, nameT);
Expand Down Expand Up @@ -263,6 +263,8 @@ JNIEXPORT jstring JNICALL
tsk_hdb_nameinit(tempdb);

jstring jname = (*env).NewStringUTF(tempdb->db_name);

tsk_hdb_close(tempdb);
return jname;
}

Expand Down
27 changes: 1 addition & 26 deletions tsk3/hashdb/hk_index.c
Expand Up @@ -92,32 +92,7 @@ hk_test(FILE * hFile)
void
hk_name(TSK_HDB_INFO * hdb_info)
{
size_t lastSeparatorIndex = 0;
size_t lastPeriodIndex = 0;
size_t len = TSTRLEN(hdb_info->db_fname);
size_t i = 0;
#ifdef TSK_WIN32
char path_char = '\\';
#else
char path_char = '/';
#endif

for (i = len-1; i > 0; --i)
{
if (hdb_info->db_fname[i] == '.' && !lastPeriodIndex)
lastPeriodIndex = i;
if (hdb_info->db_fname[i] == path_char)
{
lastSeparatorIndex = ++i;
break;
}
}
for(i = 0; i < (len-lastSeparatorIndex) && i < (lastPeriodIndex-lastSeparatorIndex); i++)
{
hdb_info->db_name[i] = (char) hdb_info->db_fname[lastSeparatorIndex+i];
}

hdb_info->db_name[i] = '\0';
tsk_name_from_path(hdb_info);
}

/**
Expand Down
27 changes: 1 addition & 26 deletions tsk3/hashdb/md5sum_index.c
Expand Up @@ -60,32 +60,7 @@ md5sum_test(FILE * hFile)
void
md5sum_name(TSK_HDB_INFO * hdb_info)
{
size_t lastSeparatorIndex = 0;
size_t lastPeriodIndex = 0;
size_t len = TSTRLEN(hdb_info->db_fname);
size_t i = 0;
#ifdef TSK_WIN32
char path_char = '\\';
#else
char path_char = '/';
#endif

for (i = len-1; i > 0; --i)
{
if (hdb_info->db_fname[i] == '.' && !lastPeriodIndex)
lastPeriodIndex = i;
if (hdb_info->db_fname[i] == path_char)
{
lastSeparatorIndex = ++i;
break;
}
}
for(i = 0; i < (len-lastSeparatorIndex) && i < (lastPeriodIndex-lastSeparatorIndex); i++)
{
hdb_info->db_name[i] = (char) hdb_info->db_fname[lastSeparatorIndex+i];
}

hdb_info->db_name[i] = '\0';
tsk_name_from_path(hdb_info);
}


Expand Down
27 changes: 1 addition & 26 deletions tsk3/hashdb/nsrl_index.c
Expand Up @@ -97,32 +97,7 @@ nsrl_test(FILE * hFile)
void
nsrl_name(TSK_HDB_INFO * hdb_info)
{
size_t lastSeparatorIndex = 0;
size_t lastPeriodIndex = 0;
size_t len = TSTRLEN(hdb_info->db_fname);
size_t i = 0;
#ifdef TSK_WIN32
char path_char = '\\';
#else
char path_char = '/';
#endif

for (i = len-1; i > 0; --i)
{
if (hdb_info->db_fname[i] == '.' && !lastPeriodIndex)
lastPeriodIndex = i;
if (hdb_info->db_fname[i] == path_char)
{
lastSeparatorIndex = ++i;
break;
}
}
for(i = 0; i < (len-lastSeparatorIndex) && i < (lastPeriodIndex-lastSeparatorIndex); i++)
{
hdb_info->db_name[i] = (char) hdb_info->db_fname[lastSeparatorIndex+i];
}

hdb_info->db_name[i] = '\0';
tsk_name_from_path(hdb_info);
}

/**
Expand Down
68 changes: 52 additions & 16 deletions tsk3/hashdb/tm_lookup.c
Expand Up @@ -1297,25 +1297,61 @@ tsk_hdb_nameinit(TSK_HDB_INFO * hdb_info)
{
/* Get database specific information */
switch (hdb_info->db_type) {
case TSK_HDB_DBTYPE_NSRL_ID:
nsrl_name(hdb_info);
break;
case TSK_HDB_DBTYPE_NSRL_ID:
nsrl_name(hdb_info);
break;

case TSK_HDB_DBTYPE_MD5SUM_ID:
md5sum_name(hdb_info);
break;
case TSK_HDB_DBTYPE_MD5SUM_ID:
md5sum_name(hdb_info);
break;

case TSK_HDB_DBTYPE_ENCASE_ID:
encase_name(hdb_info);
break;
case TSK_HDB_DBTYPE_ENCASE_ID:
encase_name(hdb_info);
break;

case TSK_HDB_DBTYPE_HK_ID:
hk_name(hdb_info);
break;
case TSK_HDB_DBTYPE_HK_ID:
hk_name(hdb_info);
break;

case TSK_HDB_DBTYPE_IDXONLY_ID:
if(tsk_hdb_hasindex(hdb_info, TSK_HDB_HTYPE_MD5_ID));
idxonly_name(hdb_info);
break;
case TSK_HDB_DBTYPE_IDXONLY_ID:
if(tsk_hdb_hasindex(hdb_info, TSK_HDB_HTYPE_MD5_ID));
idxonly_name(hdb_info);
break;
}
}

/**
* Set db_name to the name of the database file
*
* @param hdb_info the hash database object
*/
void
tsk_name_from_path(TSK_HDB_INFO * hdb_info)
{
size_t lastSeparatorIndex = 0;
size_t lastPeriodIndex = 0;
size_t len = TSTRLEN(hdb_info->db_fname);
size_t i = 0;
#ifdef TSK_WIN32
char path_char = '\\';
#else
char path_char = '/';
#endif

for (i = len-1; i > 0; --i)
{
if (hdb_info->db_fname[i] == '.' && !lastPeriodIndex)
lastPeriodIndex = i;
if (hdb_info->db_fname[i] == path_char)
{
lastSeparatorIndex = ++i;
break;
}
}
for(i = 0; i < (len-lastSeparatorIndex) && i < (lastPeriodIndex-lastSeparatorIndex); i++)
{
hdb_info->db_name[i] = (char) hdb_info->db_fname[lastSeparatorIndex+i];
}

hdb_info->db_name[i] = '\0';
}
2 changes: 2 additions & 0 deletions tsk3/hashdb/tsk_hashdb_i.h
Expand Up @@ -65,6 +65,8 @@ extern "C" {
unsigned char *hvalue, int hlen,
TSK_OFF_T offset);
extern uint8_t tsk_hdb_idxfinalize(TSK_HDB_INFO *);
extern void tsk_name_from_path(TSK_HDB_INFO *);
extern void tsk_hdb_nameinit(TSK_HDB_INFO *);

/* Functions */

Expand Down

0 comments on commit aab182f

Please sign in to comment.