From dd1ed908a56c17909db6452b788bdafc6c9881ca Mon Sep 17 00:00:00 2001 From: Brian Carrier <carrier@sleuthkit.org> Date: Mon, 20 Jan 2014 23:45:13 -0500 Subject: [PATCH] fixed name truncation when adding to DB --- tsk/auto/db_sqlite.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/tsk/auto/db_sqlite.cpp b/tsk/auto/db_sqlite.cpp index 24b987554..b2024540c 100644 --- a/tsk/auto/db_sqlite.cpp +++ b/tsk/auto/db_sqlite.cpp @@ -762,25 +762,18 @@ int size_t len = strlen(fs_file->name->name); char * name; - size_t nlen = len + attr_nlen; - if ((name = (char *) tsk_malloc(nlen + 5)) == NULL) { + size_t nlen = len + attr_nlen + 5; + if ((name = (char *) tsk_malloc(nlen)) == NULL) { return 1; } - size_t j = 0; - for (size_t i = 0; i < len && j < nlen; i++) { - name[j++] = fs_file->name->name[i]; - } + strncpy(name, fs_file->name->name, nlen); // Add the attribute name if (attr_nlen > 0) { - name[j++] = ':'; - - for (unsigned i = 0; i < attr_nlen && j < nlen; i++) { - name[j++] = fs_attr->name[i]; - } + strncat(name, ":", nlen-strlen(name)); + strncat(name, fs_attr->name, nlen-strlen(name)); } - name[j++] = '\0'; // clean up path -- GitLab