From ff677ca243f92a77ea75582451e616390643611a Mon Sep 17 00:00:00 2001
From: Roman Khlopkov <roman.khlopkov@demlabs.net>
Date: Fri, 11 Sep 2020 10:58:02 +0300
Subject: [PATCH] [*] Small bugs fixed

---
 dap-sdk/net/client/dap_client.c     | 3 +--
 dap-sdk/net/client/dap_client_pvt.c | 5 +++++
 modules/type/dag/dap_chain_cs_dag.c | 3 ++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/dap-sdk/net/client/dap_client.c b/dap-sdk/net/client/dap_client.c
index d977b219dd..b164bab857 100644
--- a/dap-sdk/net/client/dap_client.c
+++ b/dap-sdk/net/client/dap_client.c
@@ -459,9 +459,8 @@ dap_stream_ch_t * dap_client_get_stream_ch(dap_client_t * a_client, uint8_t a_ch
 {
     dap_stream_ch_t * l_ch = NULL;
     dap_client_pvt_t * l_client_internal = a_client ? DAP_CLIENT_PVT(a_client) : NULL;
-    if(l_client_internal && l_client_internal->stream)
+    if(l_client_internal && l_client_internal->stream && l_client_internal->stream_es)
         for(int i = 0; i < l_client_internal->stream->channel_count; i++) {
-            dap_stream_ch_proc_t *l_ch_id = l_client_internal->stream->channel[i]->proc;
             if(l_client_internal->stream->channel[i]->proc->id == a_ch_id) {
                 l_ch = l_client_internal->stream->channel[i];
                 break;
diff --git a/dap-sdk/net/client/dap_client_pvt.c b/dap-sdk/net/client/dap_client_pvt.c
index 59a52c01f9..3ce887e4f9 100644
--- a/dap-sdk/net/client/dap_client_pvt.c
+++ b/dap-sdk/net/client/dap_client_pvt.c
@@ -324,18 +324,23 @@ static void dap_client_pvt_delete_in(dap_client_pvt_t * a_client_pvt)
 
     if(a_client_pvt->session_key_id)
         DAP_DELETE(a_client_pvt->session_key_id);
+    a_client_pvt->session_key_id = NULL;
 
     if(a_client_pvt->active_channels)
         DAP_DELETE(a_client_pvt->active_channels);
+    a_client_pvt->active_channels = NULL;
 
     if(a_client_pvt->session_key)
         dap_enc_key_delete(a_client_pvt->session_key);
+    a_client_pvt->session_key = NULL;
 
     if(a_client_pvt->session_key_open)
         dap_enc_key_delete(a_client_pvt->session_key_open);
+    a_client_pvt->session_key_open = NULL;
 
     if(a_client_pvt->stream_key)
         dap_enc_key_delete(a_client_pvt->stream_key);
+    a_client_pvt->stream_key = NULL;
 
     //a_client_pvt->client = NULL;
    // DAP_DELETE(a_client_pvt);
diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c
index c0de3cc2d7..44c31b7872 100644
--- a/modules/type/dag/dap_chain_cs_dag.c
+++ b/modules/type/dag/dap_chain_cs_dag.c
@@ -787,6 +787,7 @@ static dap_chain_atom_iter_t* s_chain_callback_atom_iter_create_from(dap_chain_t
     dap_chain_atom_iter_t * l_atom_iter = DAP_NEW_Z(dap_chain_atom_iter_t);
     l_atom_iter->chain = a_chain;
     l_atom_iter->cur = a_atom;
+    l_atom_iter->cur_size = a_atom_size;
 
     if ( a_atom ){
         dap_chain_hash_fast_t l_atom_hash;
@@ -976,8 +977,8 @@ static dap_chain_atom_ptr_t s_chain_callback_atom_iter_get_next( dap_chain_atom_
         l_event_item = (dap_chain_cs_dag_event_item_t*) a_atom_iter->cur_item;
         // if l_event_item=NULL then items are over
         a_atom_iter->cur = l_event_item ? l_event_item->event : NULL;
+        a_atom_iter->cur_size = a_atom_iter->cur ? l_event_item->event_size : 0;
     }
-    a_atom_iter->cur_size = a_atom_iter->cur?a_atom_iter->cur_size: 0;
     if(a_atom_size)
         *a_atom_size = a_atom_iter->cur_size;
 
-- 
GitLab