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