diff --git a/tsk/auto/db_sqlite.cpp b/tsk/auto/db_sqlite.cpp
index 24b9875545b1cf8e434f8c67d96dd2142bee8cbc..b2024540ca9f12071960515361f24720f7d1c352 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