-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Not Needed
-
None
-
C Drivers
-
None
-
None
-
None
-
None
-
None
-
None
Summary
build library with asan, and run/use to connecto db - ASAN crash (WINDOWS).
Environment
ASAN stack trace:
==47280==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7ff61bbd7fee at pc 0x7ffcd9d24ec6 bp 0x00fe51cf9d60 sp 0x00fe51cf9510
READ of size 16 at 0x7ff61bbd7fee thread T0
#0 0x7ffcd9d24ec5 in wcslen D:\a_work\1\s\src\vctools\asan\llvm\compiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:7199
#1 0x7ffdf99e2660 in RtlInitUnicodeStringEx+0x20 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x180082660)
#2 0x7ffdf6c51f90 in RegQueryValueExW+0x90 (C:\WINDOWS\System32\KERNELBASE.dll+0x180021f90)
#3 0x7ff618cfefee in _mongoc_socket_setkeepalive_windows C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-socket.c:399
#4 0x7ff618cff512 in _mongoc_socket_setkeepalive C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-socket.c:515
#5 0x7ff618cfa33d in mongoc_socket_new C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-socket.c:992
#6 0x7ff618d33f30 in _mongoc_topology_scanner_tcp_initiate C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-topology-scanner.c:1272
#7 0x7ff618ded02a in _mongoc_async_cmd_phase_connect C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-async-cmd.c:270
#8 0x7ff618dec390 in mongoc_async_cmd_run C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-async-cmd.c:115
#9 0x7ff618de65cc in mongoc_async_run C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-async.c:95
#10 0x7ff618d3071c in mongoc_topology_scanner_work C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-topology-scanner.c:1665
#11 0x7ff618d4a405 in mongoc_topology_scan_once C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-topology.c:939
#12 0x7ff618d462af in _mongoc_topology_do_blocking_scan C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-topology.c:964
#13 0x7ff618d4318c in mongoc_topology_select_server_id C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-topology.c:1255
#14 0x7ff618d65aae in _mongoc_cluster_select_server_id C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cluster.c:2675
#15 0x7ff618d65f15 in _mongoc_cluster_stream_for_optype C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cluster.c:2736
#16 0x7ff618d4ed57 in mongoc_cluster_stream_for_reads C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cluster.c:2840
#17 0x7ff618c59d88 in _mongoc_cursor_fetch_stream C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cursor.c:646
#18 0x7ff618c5a806 in _mongoc_cursor_run_command C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cursor.c:791
#19 0x7ff618d69aae in _prime C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cursor-array.c:40
#20 0x7ff618c61e5e in _call_transition C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cursor.c:1044
#21 0x7ff618c55eff in mongoc_cursor_next C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-cursor.c:1120
#22 0x7ff618c2fe5e in mongoc_client_get_database_names_with_opts C:\Sandbox\Stroika\DevRoot\IntermediateFiles\Debug\ThirdPartyComponents\mongo-cxx-driver_deps\mongo-c-driver-src\src\libmongoc\src\mongoc\mongoc-client.c:2271
#23 0x7ff6182d6f99 in mongocxx::v1::`anonymous namespace'::list_database_names_impl C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\mongo-cxx-driver\CURRENT\src\mongocxx\lib\mongocxx\v1\client.cpp:236
#24 0x7ff6182d32ca in mongocxx::v1::client::list_database_names C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\mongo-cxx-driver\CURRENT\src\mongocxx\lib\mongocxx\v1\client.cpp:253
#25 0x7ff6183ac6c2 in mongocxx::v_noabi::client::list_database_names C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\mongo-cxx-driver\CURRENT\src\mongocxx\lib\mongocxx\v_noabi\mongocxx\client.cpp:271
#26 0x7ff6178db944 in `anonymous namespace'::AdminRep<1>::GetDatabases C:\Sandbox\Stroika\DevRoot\Library\Sources\Stroika\Foundation\Database\Document\MongoDBClient.cpp:445_
#27 0x7ff616c19019 in Foundation_Database_SimpleMongoDBClientTestTest::TestBody C:\Sandbox\Stroika\DevRoot\Tests\36\Test.cpp:795
#28 0x7ff6188e5ae7 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,void> C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:2657
#29 0x7ff6188e5393 in testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,void> C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:2700
#30 0x7ff618883892 in testing::Test::Run C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:2739
#31 0x7ff618885386 in testing::TestInfo::Run C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:2885
#32 0x7ff618886bea in testing::TestSuite::Run C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:3063
#33 0x7ff61889a3e4 in testing::internal::UnitTestImpl::RunAllTests C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:6054
#34 0x7ff6188e5ba7 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool> C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:2657
#35 0x7ff6188e59a7 in testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool> C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:2700
#36 0x7ff6188884c0 in testing::UnitTest::Run C:\Sandbox\Stroika\DevRoot\ThirdPartyComponents\GoogleTest\CURRENT\googletest\src\gtest.cc:5594
#37 0x7ff616f2c810 in RUN_ALL_TESTS C:\Sandbox\Stroika\DevRoot\Builds\Debug\include\gtest\gtest.h:2334
#38 0x7ff616c3d7dc in main C:\Sandbox\Stroika\DevRoot\Tests\36\Test.cpp:1275
#39 0x7ff618af9da8 in invoke_main D:\a_work\1\s\src\vctools\c
How to Reproduce
run under debugger after building with asan on windows.
Additional Background
suspect code in
_mongoc_socket_setkeepalive_windows
DWORD default_keepaliveinterval = 1000; /* 1 second */
if (RegQueryValueEx(hKey, "KeepAliveTime", NULL, &type, (LPBYTE)&data, &data_size) == ERROR_SUCCESS) {
if (type == REG_DWORD && data < keepalive.keepalivetime) {
keepalive.keepalivetime = data;
Call to RegQueryValueEx should be RegQueryValueExA (since param KeepAliveTime is not wide string - maybe explains failure in RtlInitUnicodeStringEx
- is related to
-
CDRIVER-6015 Fix MSVC warnings when UNICODE defined
-
- Backlog
-