From f219594eaaf918445932dcbde630cd6ed7ddf24b Mon Sep 17 00:00:00 2001
From: Roman Khlopkov <roman.khlopkov@demlabs.net>
Date: Mon, 12 Jun 2023 11:43:00 +0300
Subject: [PATCH] [*] Compiler warnings fix

---
 3rdparty/cuttdb/CMakeLists.txt          |   2 +-
 core/src/dap_config.c                   |   2 +-
 crypto/include/dap_hash.h               |  29 +--
 crypto/src/dap_enc_base58.c             |  10 +-
 crypto/src/dap_enc_dilithium.c          | 259 ------------------------
 crypto/src/dap_enc_key.c                |  56 -----
 global-db/dap_global_db_driver_sqlite.c |   2 +-
 net/client/dap_client_http.c            |   2 +-
 net/client/dap_client_pvt.c             |   2 +-
 plugin/src/dap_plugin.c                 |   1 +
 10 files changed, 25 insertions(+), 340 deletions(-)

diff --git a/3rdparty/cuttdb/CMakeLists.txt b/3rdparty/cuttdb/CMakeLists.txt
index 2fb2bf49f..5fa3afed3 100755
--- a/3rdparty/cuttdb/CMakeLists.txt
+++ b/3rdparty/cuttdb/CMakeLists.txt
@@ -24,4 +24,4 @@ add_library(${PROJECT_NAME} STATIC ${cuttdb_src})
 set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C)
 set_target_properties(${PROJECT_NAME} PROPERTIES COMPILER_LANGUAGE C)
 target_include_directories(${PROJECT_NAME} INTERFACE src)
-target_compile_options(${PROJECT_NAME} PRIVATE -Wno-sign-compare)
+target_compile_options(${PROJECT_NAME} PRIVATE -Wno-sign-compare -Wno-zero-length-bounds)
diff --git a/core/src/dap_config.c b/core/src/dap_config.c
index 019610f0f..559fbb602 100755
--- a/core/src/dap_config.c
+++ b/core/src/dap_config.c
@@ -158,7 +158,7 @@ dap_config_t * dap_config_load(const char * a_file_path)
                         //    l_buf_pos_line_end--;
                         if(l_buf_pos_line_end != l_buf_pos_line_start ){ // Line detected
                             char *l_line = NULL;
-                            size_t l_line_length = 0;
+                            uint32_t l_line_length = 0;
                             size_t j;
 
                             // Trimming spaces and skip the line if commented
diff --git a/crypto/include/dap_hash.h b/crypto/include/dap_hash.h
index 68994446f..0856fa77d 100755
--- a/crypto/include/dap_hash.h
+++ b/crypto/include/dap_hash.h
@@ -30,10 +30,9 @@
 #include "KeccakHash.h"
 #include "SimpleFIPS202.h"
 
-#define DAP_HASH_FAST_SIZE  32
-#define DAP_CHAIN_HASH_FAST_SIZE    32
-#define DAP_CHAIN_HASH_FAST_STR_SIZE (DAP_CHAIN_HASH_FAST_SIZE * 2 + 2 /* heading 0x */ + 1 /*trailing zero*/)
-#define DAP_CHAIN_HASH_MAX_SIZE 63
+#define DAP_HASH_FAST_SIZE          32
+#define DAP_CHAIN_HASH_FAST_SIZE    DAP_HASH_FAST_SIZE
+#define DAP_CHAIN_HASH_FAST_STR_SIZE (DAP_HASH_FAST_SIZE * 2 + 2 /* heading 0x */ + 1 /*trailing zero*/)
 
 typedef enum dap_hash_type {
     DAP_HASH_TYPE_KECCAK = 0,
@@ -102,6 +101,13 @@ DAP_STATIC_INLINE bool dap_hash_fast_is_blank( dap_hash_fast_t *a_hash )
     return dap_hash_fast_compare(a_hash, &l_blank_hash);
 }
 
+DAP_STATIC_INLINE void dap_chain_hash_fast_to_str_do(const dap_hash_fast_t *a_hash, char *a_str)
+{
+    a_str[0] = '0';
+    a_str[1] = 'x';
+    a_str[ DAP_CHAIN_HASH_FAST_STR_SIZE - 1 ] = '\0';
+    dap_htoa64((a_str + 2), a_hash->raw, DAP_CHAIN_HASH_FAST_SIZE);
+}
 
 DAP_STATIC_INLINE int dap_chain_hash_fast_to_str(const dap_hash_fast_t *a_hash, char *a_str, size_t a_str_max )
 {
@@ -111,10 +117,7 @@ DAP_STATIC_INLINE int dap_chain_hash_fast_to_str(const dap_hash_fast_t *a_hash,
         return -2;
     if( a_str_max < DAP_CHAIN_HASH_FAST_STR_SIZE )
         return -3;
-    a_str[0] = '0';
-    a_str[1] = 'x';
-    a_str[ DAP_CHAIN_HASH_FAST_STR_SIZE - 1 ] = '\0';
-    dap_htoa64((a_str + 2), a_hash->raw, DAP_CHAIN_HASH_FAST_SIZE);
+    dap_chain_hash_fast_to_str_do(a_hash, a_str);
     return DAP_CHAIN_HASH_FAST_STR_SIZE;
 }
 
@@ -122,10 +125,12 @@ DAP_STATIC_INLINE int dap_chain_hash_fast_to_str(const dap_hash_fast_t *a_hash,
 
 DAP_STATIC_INLINE char *dap_chain_hash_fast_to_str_new(const dap_hash_fast_t *a_hash)
 {
-    char *ret = DAP_NEW_Z_SIZE(char, DAP_CHAIN_HASH_FAST_STR_SIZE);
-    if (dap_chain_hash_fast_to_str(a_hash, ret, DAP_CHAIN_HASH_FAST_STR_SIZE) < 0)
-        DAP_DEL_Z(ret);
-    return ret;
+    if (!a_hash)
+        return NULL;
+    char *l_ret = DAP_NEW_Z_SIZE(char, DAP_CHAIN_HASH_FAST_STR_SIZE);
+    // Avoid compiler warning with NULL '%s' argument
+    dap_chain_hash_fast_to_str_do(a_hash, l_ret);
+    return l_ret;
 }
 
 #define dap_hash_fast_to_str_new dap_chain_hash_fast_to_str_new
diff --git a/crypto/src/dap_enc_base58.c b/crypto/src/dap_enc_base58.c
index 12054863a..4bb1744bf 100755
--- a/crypto/src/dap_enc_base58.c
+++ b/crypto/src/dap_enc_base58.c
@@ -210,14 +210,8 @@ size_t dap_enc_base58_encode(const void * a_in, size_t a_in_size, char * a_out)
 char* dap_enc_base58_encode_to_str(const void * a_in, size_t a_in_size)
 {
     size_t l_out_size = DAP_ENC_BASE58_ENCODE_SIZE (a_in_size);
-    char * l_out = DAP_NEW_Z_SIZE(char, l_out_size + 1);//+ 3); no prefix needed
-    size_t l_size = dap_enc_base58_encode(a_in, a_in_size, l_out);//l_out+2); no prefix needed
-    if(!l_size || !l_out){
-        DAP_DELETE(l_out);
-        return NULL;
-    }
-    // no prefix needed
-    // memcpy(l_out, "0x", 2);
+    char * l_out = DAP_NEW_Z_SIZE(char, l_out_size + 1);
+    dap_enc_base58_encode(a_in, a_in_size, l_out);
     return l_out;
 }
 
diff --git a/crypto/src/dap_enc_dilithium.c b/crypto/src/dap_enc_dilithium.c
index c74bd1f2d..80347668b 100755
--- a/crypto/src/dap_enc_dilithium.c
+++ b/crypto/src/dap_enc_dilithium.c
@@ -120,9 +120,6 @@ size_t dap_enc_dilithium_calc_signature_unserialized_size(void)
     return sizeof(dilithium_signature_t);
 }
 
-
-
-
 /* Serialize a signature */
 uint8_t* dap_enc_dilithium_write_signature(dilithium_signature_t* a_sign, size_t *a_sign_out)
 {
@@ -191,18 +188,6 @@ dilithium_signature_t* dap_enc_dilithium_read_signature(uint8_t *a_buf, size_t a
             return NULL;
     }
 
-    // Dirty hack for old 32 bit version serializations
-    if( l_sign->sig_len + l_shift_mem + 8 == (uint64_t) a_buflen  ){
-            DAP_DELETE(l_sign);
-            return dap_enc_dilithium_read_signature_old(a_buf,a_buflen);
-    }
-
-    // Dirty hack for old 32 bit version serializations
-    if( l_sign->sig_len + l_shift_mem + 4 == (uint64_t) a_buflen  ){
-            DAP_DELETE(l_sign);
-            return dap_enc_dilithium_read_signature_old2(a_buf,a_buflen);
-    }
-
     if( (uint64_t) a_buflen < (l_shift_mem + l_sign->sig_len) ){
         log_it(L_ERROR,"::read_signature() Buflen %zd is smaller than all fields together(%"DAP_UINT64_FORMAT_U")", a_buflen,
                l_shift_mem + l_sign->sig_len  );
@@ -221,101 +206,6 @@ dilithium_signature_t* dap_enc_dilithium_read_signature(uint8_t *a_buf, size_t a
     }
 }
 
-/**
- * @brief dap_enc_dilithium_read_signature
- * @param a_buf
- * @param a_buflen
- * @return
- */
-dilithium_signature_t* dap_enc_dilithium_read_signature_old(uint8_t *a_buf, size_t a_buflen)
-{
-    if( !a_buf || (a_buflen < (sizeof(uint32_t) + sizeof(uint32_t)) )  )
-        return NULL ;
-    uint32_t kind;
-    uint32_t l_buflen_internal = 0;
-    memcpy(&l_buflen_internal, a_buf, sizeof(uint32_t));
-    memcpy(&kind, a_buf + sizeof(uint32_t), sizeof(uint32_t));
-    if(l_buflen_internal != (uint32_t) a_buflen)
-        return NULL ;
-    dilithium_param_t p;
-    if(!dilithium_params_init(&p, kind))
-        return NULL ;
-
-    dilithium_signature_t* l_sign = DAP_NEW(dilithium_signature_t);
-    if(!l_sign)
-        return NULL;
-    memcpy(&l_sign->kind+sizeof(uint32_t), &kind,sizeof (kind));
-    uint64_t l_shift_mem = sizeof(uint32_t) + sizeof(uint32_t);
-    memcpy(&l_sign->sig_len, a_buf + l_shift_mem, sizeof(unsigned long long));
-    if( l_sign->sig_len> (UINT64_MAX - l_shift_mem ) ){
-            log_it(L_ERROR,"::read_signature_old() Buflen inside signature %"DAP_UINT64_FORMAT_U" is too big ", l_sign->sig_len);
-            DAP_DELETE(l_sign);
-            return NULL;
-    }
-
-    if( (uint64_t) a_buflen < (l_shift_mem + l_sign->sig_len) ){
-        log_it(L_ERROR,"::read_signature_old() Buflen %zd is smaller than all fields together(%" DAP_UINT64_FORMAT_U")", a_buflen,
-               l_shift_mem + l_sign->sig_len  );
-        DAP_DELETE(l_sign);
-        return NULL;
-    }
-
-    l_shift_mem += sizeof(unsigned long long);
-    l_sign->sig_data = DAP_NEW_SIZE(unsigned char, l_sign->sig_len);
-    if (!l_sign->sig_data)
-        log_it(L_ERROR,"::read_signature_old() Can't allocate sig_data %"DAP_UINT64_FORMAT_U" size", l_sign->sig_len);
-    memcpy(l_sign->sig_data, a_buf + l_shift_mem, l_sign->sig_len);
-
-    return l_sign;
-}
-
-/**
- * @brief dap_enc_dilithium_read_signature_old2
- * @param a_buf
- * @param a_buflen
- * @return
- */
-dilithium_signature_t* dap_enc_dilithium_read_signature_old2(uint8_t *a_buf, size_t a_buflen)
-{
-    if( !a_buf || (a_buflen < (sizeof(uint32_t) + sizeof(uint64_t)) )  )
-        return NULL ;
-    uint64_t kind=0;
-    uint32_t l_buflen_internal = 0;
-    memcpy(&l_buflen_internal, a_buf, sizeof(uint32_t));
-    memcpy(&kind, a_buf + sizeof(uint32_t), sizeof(uint64_t));
-    if(l_buflen_internal != (uint32_t) a_buflen)
-        return NULL ;
-    dilithium_param_t p;
-    if(!dilithium_params_init(&p, kind))
-        return NULL ;
-
-    dilithium_signature_t* l_sign = DAP_NEW(dilithium_signature_t);
-    if(!l_sign)
-        return NULL;
-    l_sign->kind =(dilithium_kind_t)  kind;
-    uint64_t l_shift_mem = sizeof(uint32_t) + sizeof(uint64_t);
-    memcpy(&l_sign->sig_len, a_buf + l_shift_mem, sizeof(unsigned long long));
-    if( l_sign->sig_len> (UINT64_MAX - l_shift_mem ) ){
-            log_it(L_ERROR,"::read_signature_old() Buflen inside signature %"DAP_UINT64_FORMAT_U" is too big ", l_sign->sig_len);
-            DAP_DELETE(l_sign);
-            return NULL;
-    }
-
-    if( (uint64_t) a_buflen < (l_shift_mem + l_sign->sig_len) ){
-        log_it(L_ERROR,"::read_signature_old() Buflen %zd is smaller than all fields together(%" DAP_UINT64_FORMAT_U")", a_buflen,
-               l_shift_mem + l_sign->sig_len  );
-        DAP_DELETE(l_sign);
-        return NULL;
-    }
-
-
-    l_shift_mem += sizeof(unsigned long long);
-    l_sign->sig_data = DAP_NEW_SIZE(unsigned char, l_sign->sig_len);
-    if (!l_sign->sig_data)
-        log_it(L_ERROR,"::read_signature_old() Can't allocate sig_data %"DAP_UINT64_FORMAT_U" size", l_sign->sig_len);
-    memcpy(l_sign->sig_data, a_buf + l_shift_mem, l_sign->sig_len);
-    return l_sign;
-}
 
 
 /* Serialize a private key. */
@@ -361,11 +251,6 @@ dilithium_private_key_t* dap_enc_dilithium_read_private_key(const uint8_t *a_buf
         return NULL;
     }
 
-    // Dirty hack to recognize old variant
-    if (a_buflen +8 == (sizeof(uint64_t) + sizeof(uint32_t))){
-        return dap_enc_dilithium_read_private_key_old(a_buf,a_buflen);
-    }
-
     if(a_buflen < (sizeof(uint64_t) + sizeof(uint32_t))){
         log_it(L_ERROR,"::read_private_key() Buflen %zd is smaller than first two fields(%zd)", a_buflen,sizeof(uint64_t) + sizeof(dilithium_kind_t)  );
         return NULL;
@@ -395,41 +280,6 @@ dilithium_private_key_t* dap_enc_dilithium_read_private_key(const uint8_t *a_buf
     return l_private_key;
 }
 
-/* Deserialize a private key. */
-dilithium_private_key_t* dap_enc_dilithium_read_private_key_old(const uint8_t *a_buf, size_t a_buflen)
-{
-    if(!a_buf || a_buflen < (sizeof(uint32_t) + sizeof(uint32_t)))
-        return NULL;
-    uint32_t kind;
-    uint32_t l_buflen = 0;
-    memcpy(&l_buflen, a_buf, sizeof(uint32_t));
-    memcpy(&kind, a_buf + sizeof(uint32_t), sizeof(uint32_t));
-    if(l_buflen != (uint32_t) a_buflen)
-        return NULL;
-    dilithium_param_t p;
-    if(!dilithium_params_init(&p, kind))
-        return NULL;
-    if(a_buflen < (sizeof(uint32_t) + sizeof(uint32_t) + p.CRYPTO_SECRETKEYBYTES ) ){
-        log_it(L_ERROR,"::read_private_key() Buflen %zd is smaller than all fields together(%zd)", a_buflen,
-               sizeof(uint32_t) + sizeof(uint32_t) + p.CRYPTO_SECRETKEYBYTES  );
-        return NULL;
-    }
-
-    dilithium_private_key_t* l_private_key = DAP_NEW(dilithium_private_key_t);
-    if(!l_private_key){
-        return NULL;
-    }
-    memcpy(&l_private_key->kind+sizeof(uint32_t), &kind,sizeof (kind));
-
-    l_private_key->data = DAP_NEW_SIZE(unsigned char, p.CRYPTO_SECRETKEYBYTES);
-    if(!l_private_key->data){
-        DAP_DELETE(l_private_key);
-        return NULL;
-    }
-    memcpy(l_private_key->data, a_buf + sizeof(uint32_t) + sizeof(uint32_t), p.CRYPTO_SECRETKEYBYTES);
-    return l_private_key;
-}
-
 /* Deserialize a public key. */
 dilithium_public_key_t* dap_enc_dilithium_read_public_key(const uint8_t *a_buf, size_t a_buflen)
 {
@@ -462,15 +312,6 @@ dilithium_public_key_t* dap_enc_dilithium_read_public_key(const uint8_t *a_buf,
         return NULL;
     }
 
-    // Dirty hack to recognize old variant
-    if (a_buflen +8 == (sizeof(uint64_t) + sizeof(uint32_t) + p.CRYPTO_PUBLICKEYBYTES )){
-        return dap_enc_dilithium_read_public_key_old(a_buf,a_buflen);
-    }
-    // Dirty hack to recognize old variant 2
-    if (a_buflen +4 == (sizeof(uint64_t) + sizeof(uint32_t) + p.CRYPTO_PUBLICKEYBYTES )){
-        return dap_enc_dilithium_read_public_key_old2(a_buf,a_buflen);
-    }
-
     if(a_buflen < (sizeof(uint64_t) + sizeof(uint32_t) + p.CRYPTO_PUBLICKEYBYTES ) ){
         log_it(L_ERROR,"::read_public_key() Buflen %zd is smaller than all fields together(%zd)", a_buflen,
                sizeof(uint64_t) + sizeof(uint32_t) + p.CRYPTO_PUBLICKEYBYTES  );
@@ -494,103 +335,3 @@ dilithium_public_key_t* dap_enc_dilithium_read_public_key(const uint8_t *a_buf,
     memcpy(l_public_key->data, a_buf + sizeof(uint64_t) + sizeof(uint32_t), p.CRYPTO_PUBLICKEYBYTES);
     return l_public_key;
 }
-
-/**
- * @brief dap_enc_dilithium_read_public_key_old
- * @param a_buf
- * @param a_buflen
- * @return
- */
-dilithium_public_key_t* dap_enc_dilithium_read_public_key_old(const uint8_t *a_buf, size_t a_buflen)
-{
-    if (!a_buf){
-        log_it(L_ERROR,"::read_public_key_old() NULL buffer on input");
-        return NULL;
-    }
-    if(a_buflen < (sizeof(uint32_t) + sizeof(uint32_t))){
-        log_it(L_ERROR,"::read_public_key_old() Buflen %zd is smaller than first two fields(%zd)", a_buflen,sizeof(uint32_t) + sizeof(uint32_t)  );
-        return NULL;
-    }
-
-    uint32_t kind;
-    uint32_t l_buflen = 0;
-    memcpy(&l_buflen, a_buf, sizeof(uint32_t));
-    memcpy(&kind, a_buf + sizeof(uint32_t), sizeof(uint32_t));
-    if(l_buflen != (uint32_t) a_buflen)
-        return NULL;
-    dilithium_param_t p;
-    if(!dilithium_params_init(&p, (dilithium_kind_t) kind)){
-        log_it(L_ERROR,"::read_public_key_old() Can't find params for signature kind %d", kind);
-        return NULL;
-    }
-
-    if(a_buflen < (sizeof(uint32_t) + sizeof(uint32_t) + p.CRYPTO_PUBLICKEYBYTES ) ){
-        log_it(L_ERROR,"::read_public_key_old() Buflen %zd is smaller than all fields together(%zd)", a_buflen,
-               sizeof(uint32_t) + sizeof(uint32_t) + p.CRYPTO_PUBLICKEYBYTES  );
-        return NULL;
-    }
-
-    dilithium_public_key_t* l_public_key = DAP_NEW_Z(dilithium_public_key_t);
-    if(!l_public_key){
-        return NULL;
-    }
-    memcpy(&l_public_key->kind, &kind,sizeof (l_public_key->kind));
-
-    l_public_key->data = DAP_NEW_Z_SIZE(unsigned char, p.CRYPTO_PUBLICKEYBYTES);
-    if(!l_public_key->data){
-        DAP_DELETE(l_public_key);
-        return NULL;
-    }
-    memcpy(l_public_key->data, a_buf + sizeof(uint32_t) + sizeof(uint32_t), p.CRYPTO_PUBLICKEYBYTES);
-    return l_public_key;
-}
-
-/**
- * @brief dap_enc_dilithium_read_public_key_old2
- * @param a_buf
- * @param a_buflen
- * @return
- */
-dilithium_public_key_t* dap_enc_dilithium_read_public_key_old2(const uint8_t *a_buf, size_t a_buflen)
-{
-    if (!a_buf){
-        log_it(L_ERROR,"::read_public_key_old2() NULL buffer on input");
-        return NULL;
-    }
-    if(a_buflen < (sizeof(uint32_t) + sizeof(uint32_t))){
-        log_it(L_ERROR,"::read_public_key_old2() Buflen %zd is smaller than first two fields(%zd)", a_buflen,sizeof(uint32_t) + sizeof(uint32_t)  );
-        return NULL;
-    }
-
-    uint64_t kind=0;
-    uint32_t l_buflen = 0;
-    memcpy(&l_buflen, a_buf, sizeof(uint32_t));
-    memcpy(&kind, a_buf + sizeof(uint64_t), sizeof(uint64_t));
-    if(l_buflen != (uint32_t) a_buflen)
-        return NULL;
-    dilithium_param_t p;
-    if(!dilithium_params_init(&p,(dilithium_kind_t) kind)){
-        log_it(L_ERROR,"::read_public_key_old2() Can't find params for signature kind %zu", kind);
-        return NULL;
-    }
-
-    if(a_buflen < (sizeof(uint32_t) + sizeof(uint64_t) + p.CRYPTO_PUBLICKEYBYTES ) ){
-        log_it(L_ERROR,"::read_public_key_old2() Buflen %zd is smaller than all fields together(%zd)", a_buflen,
-               sizeof(uint32_t) + sizeof(uint64_t) + p.CRYPTO_PUBLICKEYBYTES  );
-        return NULL;
-    }
-
-    dilithium_public_key_t* l_public_key = DAP_NEW_Z(dilithium_public_key_t);
-    if(!l_public_key){
-        return NULL;
-    }
-    memcpy(&l_public_key->kind, &kind,sizeof (l_public_key->kind));
-
-    l_public_key->data = DAP_NEW_Z_SIZE(unsigned char, p.CRYPTO_PUBLICKEYBYTES);
-    if(!l_public_key->data){
-        DAP_DELETE(l_public_key);
-        return NULL;
-    }
-    memcpy(l_public_key->data, a_buf + sizeof(uint32_t) + sizeof(uint64_t), p.CRYPTO_PUBLICKEYBYTES);
-    return l_public_key;
-}
diff --git a/crypto/src/dap_enc_key.c b/crypto/src/dap_enc_key.c
index 7309fdf5a..e8ea15281 100755
--- a/crypto/src/dap_enc_key.c
+++ b/crypto/src/dap_enc_key.c
@@ -590,62 +590,6 @@ int dap_enc_key_deserialize_priv_key(dap_enc_key_t *a_key, const uint8_t *a_buf,
     return 0;
 }
 
-int dap_enc_key_deserialize_pub_key_old(dap_enc_key_t *a_key, const uint8_t *a_buf, size_t a_buflen)
-{
-    if(!a_key || !a_buf)
-        return -1;
-    switch (a_key->type) {
-    case DAP_ENC_KEY_TYPE_SIG_BLISS:
-        if((a_key->pub_key_data)) {
-            bliss_b_public_key_delete((bliss_public_key_t *) a_key->pub_key_data);
-            DAP_DELETE(a_key->pub_key_data);
-        }
-        a_key->pub_key_data = (uint8_t*) dap_enc_sig_bliss_read_public_key(a_buf, a_buflen);
-        if(!a_key->pub_key_data)
-        {
-            a_key->pub_key_data_size = 0;
-            return -1;
-        }
-        a_key->pub_key_data_size = sizeof(bliss_public_key_t);
-        break;
-    case DAP_ENC_KEY_TYPE_SIG_TESLA:
-        tesla_public_key_delete((tesla_public_key_t *) a_key->pub_key_data);
-        a_key->pub_key_data = (uint8_t*) dap_enc_tesla_read_public_key(a_buf, a_buflen);
-        if(!a_key->pub_key_data)
-        {
-            a_key->pub_key_data_size = 0;
-            return -1;
-        }
-        a_key->pub_key_data_size = sizeof(tesla_public_key_t);
-        break;
-    case DAP_ENC_KEY_TYPE_SIG_PICNIC:
-        DAP_DELETE(a_key->pub_key_data);
-        a_key->pub_key_data_size = a_buflen;
-        a_key->pub_key_data = DAP_NEW_Z_SIZE(uint8_t, a_key->pub_key_data_size);
-        memcpy(a_key->pub_key_data, a_buf, a_key->pub_key_data_size);
-        dap_enc_sig_picnic_update(a_key);
-        break;
-    case DAP_ENC_KEY_TYPE_SIG_DILITHIUM:
-        if ( a_key->pub_key_data )
-            dilithium_public_key_delete((dilithium_public_key_t *) a_key->pub_key_data);
-        a_key->pub_key_data = (uint8_t*) dap_enc_dilithium_read_public_key_old(a_buf, a_buflen);
-        if(!a_key->pub_key_data)
-        {
-            a_key->pub_key_data_size = 0;
-            return -1;
-        }
-        a_key->pub_key_data_size = sizeof(dilithium_public_key_t);
-        break;
-    default:
-        DAP_DELETE(a_key->pub_key_data);
-        a_key->pub_key_data_size = a_buflen;
-        a_key->pub_key_data = DAP_NEW_Z_SIZE(uint8_t, a_key->pub_key_data_size);
-        memcpy(a_key->pub_key_data, a_buf, a_key->pub_key_data_size);
-    }
-    return 0;
-
-}
-
 /**
  * @brief dap_enc_key_deserialize_pub_key
  *
diff --git a/global-db/dap_global_db_driver_sqlite.c b/global-db/dap_global_db_driver_sqlite.c
index 3e057a990..e5676ff40 100644
--- a/global-db/dap_global_db_driver_sqlite.c
+++ b/global-db/dap_global_db_driver_sqlite.c
@@ -1146,7 +1146,7 @@ char l_errbuf[255] = {0}, *l_error_message = NULL;
 
     // Check paths and create them if nessesary
     char * l_filename_dir = dap_path_get_dirname(a_filename_db);
-    strncpy(s_filename_db, a_filename_db, sizeof(s_filename_db) );
+    strncpy(s_filename_db, a_filename_db, sizeof(s_filename_db) - 1);
 
     if ( !dap_dir_test(l_filename_dir) ){
         log_it(L_NOTICE, "No directory %s, trying to create...",l_filename_dir);
diff --git a/net/client/dap_client_http.c b/net/client/dap_client_http.c
index b0b59301b..2ddb295cc 100644
--- a/net/client/dap_client_http.c
+++ b/net/client/dap_client_http.c
@@ -588,7 +588,7 @@ dap_client_http_t * dap_client_http_request_custom (
     l_client_http->request_size = a_request_size;
     memcpy(l_client_http->request, a_request, a_request_size);
 
-    strncpy(l_client_http->uplink_addr, a_uplink_addr, INET_ADDRSTRLEN);
+    strncpy(l_client_http->uplink_addr, a_uplink_addr, INET_ADDRSTRLEN - 1);
     l_client_http->uplink_port = a_uplink_port;
     l_client_http->cookie = a_cookie;
     l_client_http->request_custom_headers = dap_strdup(a_custom_headers);
diff --git a/net/client/dap_client_pvt.c b/net/client/dap_client_pvt.c
index 1d16edb12..1334a1194 100644
--- a/net/client/dap_client_pvt.c
+++ b/net/client/dap_client_pvt.c
@@ -1000,7 +1000,7 @@ static void s_stream_ctl_response(dap_client_t * a_client, void * a_data, size_t
     if(s_debug_more)
         log_it(L_DEBUG, "STREAM_CTL response %zu bytes length recieved", a_data_size);
     char * l_response_str = DAP_NEW_Z_SIZE(char, a_data_size + 1);
-    memcpy(l_response_str, a_data, a_data_size);
+    memcpy(l_response_str, a_data, (uint32_t)a_data_size);
 
     if(a_data_size < 4) {
         log_it(L_ERROR, "STREAM_CTL Wrong reply: '%s'", l_response_str);
diff --git a/plugin/src/dap_plugin.c b/plugin/src/dap_plugin.c
index 812fecf0c..fca299526 100644
--- a/plugin/src/dap_plugin.c
+++ b/plugin/src/dap_plugin.c
@@ -268,6 +268,7 @@ static int s_start(dap_plugin_manifest_t * a_manifest)
         struct plugin_module * l_module = DAP_NEW_Z(struct plugin_module);
         l_module->pvt_data = l_pvt_data;
         strncpy(l_module->name, a_manifest->name, sizeof(l_module->name)-1);
+        l_module->name[sizeof(l_module->name) - 1] = '\0';  // Warning avoid
         l_module->type = l_type;
         l_module->manifest = a_manifest;
         HASH_ADD_STR(s_modules,name,l_module);
-- 
GitLab