diff --git a/modules/channel/chain-net/dap_stream_ch_chain_net.c b/modules/channel/chain-net/dap_stream_ch_chain_net.c
index 056a573ce2967e0d9cee8b57cd814b5442d3977a..59c936263d045799a8aaf85959e975d8204a9101 100644
--- a/modules/channel/chain-net/dap_stream_ch_chain_net.c
+++ b/modules/channel/chain-net/dap_stream_ch_chain_net.c
@@ -164,6 +164,10 @@ void s_stream_ch_packet_in(dap_stream_ch_t *a_ch, void* a_arg)
         }*/
         switch (l_ch_pkt->hdr.type) {
         case DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_ANNOUNCE:
+            if (!a_ch->stream->authorized) {
+                log_it(L_WARNING, "Trying to announce net from not authorized stream");
+                break;
+            }
             assert(!dap_stream_node_addr_is_blank(&a_ch->stream->node));
             dap_accounting_downlink_in_net(l_net->pub.id.uint64, &a_ch->stream->node);
             break;
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index fbbcba3321c04f01a5b0635c239c992922688891..fcef844aa6f08eda9bb7131c009a6df69fe841be 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -2031,7 +2031,7 @@ int s_net_init(const char *a_net_name, uint16_t a_acl_idx)
     }
     for (uint16_t i = 0; i < l_net_pvt->permanent_links_count; ++i) {
         l_net_pvt->permanent_links[i] = DAP_NEW_Z(dap_link_info_t);
-        if (l_net_pvt->permanent_links[i]) {
+        if (!l_net_pvt->permanent_links[i]) {
             log_it(L_CRITICAL, "%s", g_error_memory_alloc);
             dap_chain_net_delete(l_net);
             dap_config_close(l_cfg);