From 17826af965356b9e1925d8800c04c68f42f1dff4 Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Thu, 4 Jul 2024 17:10:24 +0700
Subject: [PATCH] [*]overflow fix

---
 global-db/dap_global_db_pkt.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/global-db/dap_global_db_pkt.c b/global-db/dap_global_db_pkt.c
index 1f4948588..a34db2acb 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) {
-- 
GitLab