diff --git a/global-db/dap_global_db_pkt.c b/global-db/dap_global_db_pkt.c
index 1f4948588f8b40d2909c19ee32a88ba2157b4860..a34db2acbe0734f19751b93accde898a09fb4631 100644
--- a/global-db/dap_global_db_pkt.c
+++ b/global-db/dap_global_db_pkt.c
@@ -178,21 +178,19 @@ static byte_t *s_fill_one_store_obj(dap_global_db_pkt_t *a_pkt, dap_store_obj_t
     a_obj->crc = a_pkt->crc;
     byte_t *l_data_ptr = a_pkt->data;
 
-    a_obj->group = DAP_DUP_SIZE(l_data_ptr, a_pkt->group_len + sizeof(char));
+    a_obj->group = strndup((char*)l_data_ptr, a_pkt->group_len);
     if (!a_obj->group) {
         log_it(L_CRITICAL, "%s", c_error_memory_alloc);
         return NULL;
     }
-    a_obj->group[a_pkt->group_len] = '\0';
     l_data_ptr += a_pkt->group_len;
 
-    a_obj->key = DAP_DUP_SIZE(l_data_ptr, a_pkt->key_len + sizeof(char));
+    a_obj->key = strndup((char*)l_data_ptr, a_pkt->key_len);
     if (!a_obj->key) {
         log_it(L_CRITICAL, "%s", c_error_memory_alloc);
         DAP_DELETE(a_obj->group);
         return NULL;
     }
-    ((char *)a_obj->key)[a_pkt->key_len] = '\0';
     l_data_ptr += a_pkt->key_len;
 
     if (a_pkt->value_len) {