From c408c660da7a46e3a064af3779bb63679801087c Mon Sep 17 00:00:00 2001
From: "daniil.frolov" <daniil.frolov@demlabs.net>
Date: Mon, 3 Apr 2023 13:23:48 +0700
Subject: [PATCH] [*] Fix emission multiple starting [*] Fix emission dump
 suspending if sign_size 0

---
 modules/common/dap_chain_datum_token.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/modules/common/dap_chain_datum_token.c b/modules/common/dap_chain_datum_token.c
index 8ec5775a36..3d11dfe3eb 100644
--- a/modules/common/dap_chain_datum_token.c
+++ b/modules/common/dap_chain_datum_token.c
@@ -218,7 +218,7 @@ void dap_chain_datum_token_certs_dump(dap_string_t * a_str_out, byte_t * a_data_
         l_offset += dap_sign_get_size(l_sign);
         if (l_sign->header.sign_size == 0) {
             dap_string_append_printf(a_str_out, "<CORRUPTED - 0 size signature>\n");
-            continue;
+            break;
         }
 
         if (l_sign->header.sign_size > a_certs_size)
@@ -441,9 +441,9 @@ dap_chain_datum_token_emission_t *dap_chain_datum_emission_add_sign(dap_enc_key_
     if (!l_new_sign)
         return NULL;
     size_t l_emission_size = dap_chain_datum_emission_get_size((uint8_t *)a_emission);
-    dap_chain_datum_token_emission_t *l_ret = DAP_REALLOC(a_emission, l_emission_size + l_old_signs_size + dap_sign_get_size(l_new_sign));
     size_t l_sign_size = dap_sign_get_size(l_new_sign);
-    memcpy(l_ret->tsd_n_signs + (size_t)l_ret->data.type_auth.tsd_total_size, l_new_sign, l_sign_size);
+    dap_chain_datum_token_emission_t *l_ret = DAP_REALLOC(a_emission, l_emission_size + l_old_signs_size + l_sign_size);
+    memcpy(l_ret->tsd_n_signs + l_old_signs_size, l_new_sign, l_sign_size);
     DAP_DELETE(l_new_sign);
     l_old_signs_size += l_sign_size;
     l_signs_count++;
-- 
GitLab