diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4a87c39556879cbc2a0ad93dcf5f56c339dbf684..c81ec7e9c6b39bb2309e9fbb5d728d755c77c096 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -82,3 +82,11 @@ build:macos: script: - mkdir build - cd build && $(${OSXCROSS_ROOT}/bin/osxcross-conf) && export OSXCROSS_NO_INCLUDE_PATH_WARNINGS=1 && export OSXCROSS_HOST=x86_64-apple-darwin20.4 && cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${OSXCROSS_ROOT}/toolchain.cmake -DBoost_INCLUDE_DIR=$BOOST_INCLUDE_DIR .. && make -j$(nproc) + + +build:android: + extends: .tests + image: demlabs/android/any:qt5 + before_script: /opt/buildtools/prepare_environment.sh amd64-windows + script: + - ./prod_build/build.sh --target android diff --git a/dap-sdk b/dap-sdk index 76bb290ca9d93e5adac3a56a32d42bc94ad354c5..0a3ea3de0907027a3b98968397f63b37ef035b92 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit 76bb290ca9d93e5adac3a56a32d42bc94ad354c5 +Subproject commit 0a3ea3de0907027a3b98968397f63b37ef035b92 diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c index 860d925b45a00d152c835a27c2ab7fb10239d8b4..ce4aae755ca60170c9fc9441e10ae636251be9e5 100644 --- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c +++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c @@ -339,7 +339,12 @@ static void s_check_db_collect_callback(dap_global_db_instance_t UNUSED_ARG *a_d dap_global_db_obj_t *l_objs = dap_global_db_get_all_sync(a_group, &l_objs_count); if (l_objs_count >= 10) { for (size_t i = 0; i < l_objs_count; i++) { - SUM_256_256(l_value_total, *(uint256_t*)l_objs[i].value, &l_value_total); + if (l_objs[i].value_len != sizeof(uint256_t)) { + log_it(L_ERROR, "Autocollect record %s is corrupt, len %zu clear it", l_objs[i].key, l_objs[i].value_len); + dap_global_db_del_sync(a_group, l_objs[i].key); + continue; + } + SUM_256_256(l_value_total, *(uint256_t *)l_objs[i].value, &l_value_total); if (compare256(l_value_total, l_block_collect_params->collecting_level) >= 0) { l_level_reached = true; break; diff --git a/modules/type/blocks/dap_chain_cs_blocks.c b/modules/type/blocks/dap_chain_cs_blocks.c index 1caca8b14032589117f2e10b2bc5485182049710..13c5384906c35c4bf84b2ad87e511f1a8cd697e1 100644 --- a/modules/type/blocks/dap_chain_cs_blocks.c +++ b/modules/type/blocks/dap_chain_cs_blocks.c @@ -1242,17 +1242,14 @@ static int s_cli_blocks(int a_argc, char ** a_argv, void **a_str_reply) .block_sign_pkey = l_pub_key, .collecting_addr = l_addr }; - //Cleare gdb - size_t l_objs_fee_count = 0; - size_t l_objs_rew_count = 0; + //Clear gdb char *l_group_fee = dap_chain_cs_blocks_get_fee_group(l_net->pub.name); - char *l_group_rew = dap_chain_cs_blocks_get_reward_group(l_net->pub.name); - dap_global_db_obj_t *l_objs_fee = dap_global_db_get_all_sync(l_group_fee, &l_objs_fee_count); - dap_global_db_obj_t *l_objs_rew = dap_global_db_get_all_sync(l_group_rew, &l_objs_rew_count); - if(l_objs_fee_count)dap_global_db_objs_delete(l_objs_fee,l_objs_fee_count); - if(l_objs_rew_count)dap_global_db_objs_delete(l_objs_rew,l_objs_rew_count); + dap_global_db_del_sync(l_group_fee, NULL); DAP_DELETE(l_group_fee); - DAP_DELETE(l_group_rew); + char *l_group_reward = dap_chain_cs_blocks_get_reward_group(l_net->pub.name); + dap_global_db_del_sync(l_group_reward, NULL); + DAP_DELETE(l_group_reward); + json_object* json_arr_bl_out = json_object_new_array(); for (dap_chain_block_cache_t *l_block_cache = PVT(l_blocks)->blocks; l_block_cache; l_block_cache = l_block_cache->hh.next) { diff --git a/modules/wallet/dap_chain_wallet.c b/modules/wallet/dap_chain_wallet.c index c341711cdbaed35563d8d77025643c23a801e45c..25892281a3fab2a8418557a4eb05290c2a0c4b53 100644 --- a/modules/wallet/dap_chain_wallet.c +++ b/modules/wallet/dap_chain_wallet.c @@ -63,7 +63,7 @@ //#define __USE_GNU -#if defined(__USE_BSD) || defined(__USE_GNU) +#if defined(__USE_BSD) || defined(__USE_GNU) || defined(DAP_OS_ANDROID) #define S_IREAD S_IRUSR #define S_IWRITE S_IWUSR #define S_IEXEC S_IXUSR