mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-09-09 16:22:54 +02:00
fix stack corruption in DB::get
This commit is contained in:
parent
a78ac17d10
commit
71d68e9a60
2 changed files with 24 additions and 5 deletions
|
@ -4,12 +4,14 @@ cmake_minimum_required (VERSION 3.13)
|
|||
project (zerotier-one LANGUAGES CXX C)
|
||||
|
||||
option(ZT1_CENTRAL_CONTROLLER "Build with ZeroTier Central Controller support" OFF)
|
||||
|
||||
oiption(ADDRESS_SANITIZER "Build with Address Sanitizer enabled (only for x86_64/arm64)" OFF
|
||||
)
|
||||
set (PROJ_DIR ${PROJECT_SOURCE_DIR})
|
||||
|
||||
execute_process(COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE CPU_ARCHITECTURE)
|
||||
set(CPU_ARCHITECTURE ${CPU_ARCHITECTURE} CACHE STRING "Target CPU architecture (detected automatically)")
|
||||
message(STATUS "Detected CPU architecture: ${CPU_ARCHITECTURE}")
|
||||
|
||||
if(CPU_ARCHITECTURE STREQUAL "x86_64")
|
||||
add_definitions(
|
||||
-DZT_ARCHITECTURE=2
|
||||
|
@ -20,9 +22,19 @@ if(CPU_ARCHITECTURE STREQUAL "x86_64")
|
|||
-DZT_USE_FAST_X64_ED25519=1
|
||||
)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -z noexecstack")
|
||||
elseif(CPU_ARCHITECTURE STREQUAL "aarch64")
|
||||
|
||||
if(ADDRESS_SANITIZER)
|
||||
add_compile_options(-fsanitize=address)
|
||||
add_link_options(-fsanitize=address)
|
||||
endif()
|
||||
elseif(CPU_ARCHITECTURE STREQUAL "aarch64" OR CPU_ARCHITECTURE STREQUAL "arm64")
|
||||
add_definitions(-DZT_ARCHITECTURE=4 -DZT_ARCH_ARM_HAS_NEON=1 -DZT_SSO_SUPPORTED=1 -DZT_AES_NEON=1)
|
||||
add_compile_options(-march=armv8-a+crypto -mtune=generic -mstrict-align)
|
||||
|
||||
if(ADDRESS_SANITIZER)
|
||||
add_compile_options(-fsanitize=address)
|
||||
add_link_options(-fsanitize=address)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(FetchContent)
|
||||
|
|
|
@ -216,14 +216,21 @@ bool DB::get(const uint64_t networkId, nlohmann::json& network, const uint64_t m
|
|||
return true;
|
||||
}
|
||||
|
||||
bool DB::get(const uint64_t networkId, nlohmann::json& network, const uint64_t memberId, nlohmann::json& member, NetworkSummaryInfo& info)
|
||||
bool DB::get(
|
||||
const uint64_t networkId,
|
||||
nlohmann::json& network,
|
||||
const uint64_t memberId,
|
||||
nlohmann::json& member,
|
||||
NetworkSummaryInfo& info)
|
||||
{
|
||||
auto provider = opentelemetry::trace::Provider::GetTracerProvider();
|
||||
auto tracer = provider->GetTracer("db");
|
||||
auto span = tracer->StartSpan("db::getNetworkAndMemberAndSummary");
|
||||
auto scope = tracer->WithActiveSpan(span);
|
||||
char networkIdStr[17];
|
||||
char memberIdStr[11];
|
||||
char networkIdStr[32];
|
||||
memset(networkIdStr, 0, sizeof(networkIdStr));
|
||||
char memberIdStr[32];
|
||||
memset(memberIdStr, 0, sizeof(memberIdStr));
|
||||
span->SetAttribute("network_id", Utils::hex(networkId, networkIdStr));
|
||||
span->SetAttribute("member_id", Utils::hex(memberId, memberIdStr));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue