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