diff --git a/tsk/auto/db_sqlite.cpp b/tsk/auto/db_sqlite.cpp index b2024540ca9f12071960515361f24720f7d1c352..eeea7aa565e82b5a229c53252e168e52b9fefbf9 100644 --- a/tsk/auto/db_sqlite.cpp +++ b/tsk/auto/db_sqlite.cpp @@ -777,21 +777,17 @@ int // clean up path - size_t path_len = strlen(path); - size_t epath_len = path_len*2; + // +2 = space for leading slash and terminating null + size_t path_len = strlen(path) + 2; char * escaped_path; - if ((escaped_path = (char *) tsk_malloc(epath_len + 2)) == NULL) { // +2 = space for leading slash and terminating null + if ((escaped_path = (char *) tsk_malloc(path_len)) == NULL) { free(name); return 1; } - size_t k = 0; - escaped_path[k++] = '/'; // add a leading slash - for (size_t i = 0; i < path_len && k < epath_len; i++) { - escaped_path[k++] = path[i]; - } - escaped_path[k++] = '\0'; + strncpy(escaped_path, "/", path_len); + strncat(escaped_path, path, path_len); char md5Text[48] = "NULL";