From 119f444480c255f4285831381e2c0ad1e16f6922 Mon Sep 17 00:00:00 2001
From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net>
Date: Mon, 21 Oct 2019 01:25:15 +0700
Subject: [PATCH] [*] I hope it was double-free error and I've fixed that

---
 dap_chain_node_cli_cmd.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/dap_chain_node_cli_cmd.c b/dap_chain_node_cli_cmd.c
index f6f1a8d627..db5623be9d 100644
--- a/dap_chain_node_cli_cmd.c
+++ b/dap_chain_node_cli_cmd.c
@@ -1721,13 +1721,13 @@ int com_token_decl_sign(int argc,  char ** argv, char ** a_str_reply)
                 for(size_t l_offset = 0; l_offset < l_signs_size; l_signs_count++) {
                     dap_chain_sign_t * l_sign = (dap_chain_sign_t *) l_datum_token->signs + l_offset;
                     l_offset += dap_chain_sign_get_size(l_sign);
-                    if(dap_chain_sign_verify(l_sign, &l_datum_token->header, sizeof(l_datum_token->header)) != 1) {
+                    if( dap_chain_sign_verify(l_sign, &l_datum_token->header, sizeof(l_datum_token->header)) != 1) {
                         log_it(L_WARNING, "Wrong signature for datum_token with key %s in mempool!", l_datum_hash_str);
                         dap_chain_node_cli_set_reply_text(a_str_reply,
                                 "Datum %s with datum token has wrong signature %u, break process and exit",
                                 l_datum_hash_str, l_signs_count + 1);
                         DAP_DELETE(l_datum);
-                        DAP_DELETE(l_datum_token);
+                        //DAP_DELETE(l_datum_token);
                         DAP_DELETE(l_gdb_group_mempool);
                         return -666;
                     }
@@ -1739,7 +1739,7 @@ int com_token_decl_sign(int argc,  char ** argv, char ** a_str_reply)
                     dap_chain_node_cli_set_reply_text(a_str_reply,
                             "Datum %s with datum token has all signs on board. Can't add anything in it");
                     DAP_DELETE(l_datum);
-                    DAP_DELETE(l_datum_token);
+                    //DAP_DELETE(l_datum_token);
                     DAP_DELETE(l_gdb_group_mempool);
                     return -7;
                 } // Check if more signs that could be (corrupted datum)
@@ -1748,12 +1748,12 @@ int com_token_decl_sign(int argc,  char ** argv, char ** a_str_reply)
                             "Warning! Datum %s with datum token has more signs on board (%u) than its possible to have (%u)!",
                             l_signs_count, l_datum_token->header.signs_total);
                     DAP_DELETE(l_datum);
-                    DAP_DELETE(l_datum_token);
+                    //DAP_DELETE(l_datum_token);
                     DAP_DELETE(l_gdb_group_mempool);
                     return -8;
                 } // Check if we have enough place to sign the datum token declaration
                 else if(l_datum_token->header.signs_total > l_signs_count + l_certs_count) {
-                    l_datum = DAP_REALLOC(l_datum, l_datum_size + l_signs_size+1000); // add place for new signatures
+                    l_datum = DAP_REALLOC(l_datum, l_datum_size + l_signs_size); // add place for new signatures
                     size_t l_offset = 0;
                     for(size_t i = 0; i < l_certs_count; i++) {
                         dap_chain_sign_t * l_sign = dap_chain_sign_create(l_certs[i]->enc_key,
@@ -1790,7 +1790,7 @@ int com_token_decl_sign(int argc,  char ** argv, char ** a_str_reply)
                                     l_key_str, l_datum_hash_str, l_datum_hash_str);
 
                             DAP_DELETE(l_datum);
-                            DAP_DELETE(l_datum_token);
+                            //DAP_DELETE(l_datum_token);
                             DAP_DELETE(l_gdb_group_mempool);
                             return 0;
                         } else {
@@ -1798,7 +1798,7 @@ int com_token_decl_sign(int argc,  char ** argv, char ** a_str_reply)
                                     "Warning! Can't remove old datum %s ( new datum %s added normaly in datum pool)",
                                     l_datum_hash_str, l_key_str);
                             DAP_DELETE(l_datum);
-                            DAP_DELETE(l_datum_token);
+                            //DAP_DELETE(l_datum_token);
                             DAP_DELETE(l_gdb_group_mempool);
                             return 1;
                         }
@@ -1809,7 +1809,7 @@ int com_token_decl_sign(int argc,  char ** argv, char ** a_str_reply)
                                 "Error! datum %s produced from %s can't be placed in mempool",
                                 l_key_str, l_datum_hash_str);
                         DAP_DELETE(l_datum);
-                        DAP_DELETE(l_datum_token);
+                        //DAP_DELETE(l_datum_token);
                         DAP_DELETE(l_gdb_group_mempool);
                         return -2;
                     }
-- 
GitLab