Skip to content

test: use-of-uninitialized-value in sqlite3Strlen30 #27222

@maflcko

Description

@maflcko

https://cirrus-ci.com/task/5021971277152256?logs=ci#L3656

wallet/test/feebumper_tests.cpp(18): Entering test suite "feebumper_tests"
wallet/test/feebumper_tests.cpp(42): Entering test case "external_max_weight_test"
2023-01-30T17:19:34Z Seed: Setting random seed for current tests to RANDOM_CTX_SEED=231d587d0169ecab6befbed75f49c95aa84567b2750479dca13bd7471f2627e2
2023-01-30T17:19:34.255341Z [test] [init/common.cpp:149] [LogPackageVersion] Bitcoin Core version v24.99.0-a55717c914f8 (release build)
2023-01-30T17:19:34.256134Z [test] [kernel/context.cpp:21] [Context] Using the 'x86_shani(1way,2way)' SHA256 implementation
2023-01-30T17:19:34.256224Z [test] [random.cpp:100] [ReportHardwareRand] Using RdSeed as an additional entropy source
2023-01-30T17:19:34.256309Z [test] [random.cpp:103] [ReportHardwareRand] Using RdRand as an additional entropy source
2023-01-30T17:19:34.297599Z [test] [script/sigcache.cpp:103] [InitSignatureCache] Using 16 MiB out of 16 MiB requested for signature cache, able to store 524288 elements
2023-01-30T17:19:34.335885Z [test] [validation.cpp:1703] [InitScriptExecutionCache] Using 16 MiB out of 16 MiB requested for script execution cache, able to store 524288 elements
2023-01-30T17:19:34.336763Z [scheduler] [util/thread.cpp:20] [TraceThread] scheduler thread start
2023-01-30T17:19:34.348812Z [test] [policy/fees.cpp:551] [CBlockPolicyEstimator] Failed to read fee estimates from /tmp/test_common_Bitcoin Core/667f5e5269ae84d88253c4870a102977a9eaf2d3f0a9c8b5c3572b5cd1a8be09/fee_estimates.dat. Continue anyway.
2023-01-30T17:19:34.350079Z [test] [dbwrapper.cpp:158] [CDBWrapper] Opened LevelDB successfully
2023-01-30T17:19:34.350259Z [test] [dbwrapper.cpp:183] [CDBWrapper] Using obfuscation key for /tmp/test_common_Bitcoin Core/667f5e5269ae84d88253c4870a102977a9eaf2d3f0a9c8b5c3572b5cd1a8be09/blocks/index: 0000000000000000
2023-01-30T17:19:34.387116Z [test] [node/chainstate.cpp:39] [LoadChainstate] Assuming ancestors of block 00000000000000000009c97098b5295f7e5f183ac811fb5d1534040adb93cabd have valid signatures.
2023-01-30T17:19:34.387228Z [test] [node/chainstate.cpp:43] [LoadChainstate] Setting nMinimumChainWork=00000000000000000000000000000000000000003404ba0801921119f903495e
2023-01-30T17:19:34.387838Z [test] [dbwrapper.cpp:158] [CDBWrapper] Opened LevelDB successfully
2023-01-30T17:19:34.387983Z [test] [dbwrapper.cpp:183] [CDBWrapper] Using obfuscation key for /tmp/test_common_Bitcoin Core/667f5e5269ae84d88253c4870a102977a9eaf2d3f0a9c8b5c3572b5cd1a8be09/blocks/index: 0000000000000000
2023-01-30T17:19:34.388195Z [test] [node/blockstorage.cpp:331] [LoadBlockIndexDB] LoadBlockIndexDB: last block file = 0
2023-01-30T17:19:34.388375Z [test] [node/blockstorage.cpp:335] [LoadBlockIndexDB] LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=0, size=0, heights=0...0, time=1970-01-01...1970-01-01)
2023-01-30T17:19:34.388445Z [test] [node/blockstorage.cpp:346] [LoadBlockIndexDB] Checking all blk files are present...
2023-01-30T17:19:34.388544Z [test] [validation.cpp:4377] [LoadBlockIndex] Initializing databases...
2023-01-30T17:19:34.388814Z [test] [flatfile.cpp:69] [Allocate] [validation] Pre-allocating up to position 0x1000000 in blk00000.dat
2023-01-30T17:19:34.389198Z [test] [node/chainstate.cpp:119] [LoadChainstate] Initializing chainstate Chainstate [ibd] @ height -1 (null)
2023-01-30T17:19:34.389620Z [test] [dbwrapper.cpp:158] [CDBWrapper] Opened LevelDB successfully
2023-01-30T17:19:34.389839Z [test] [dbwrapper.cpp:180] [CDBWrapper] Wrote new obfuscate key for /tmp/test_common_Bitcoin Core/667f5e5269ae84d88253c4870a102977a9eaf2d3f0a9c8b5c3572b5cd1a8be09/chainstate: 3ed985f8e1400ea3
2023-01-30T17:19:34.389922Z [test] [dbwrapper.cpp:183] [CDBWrapper] Using obfuscation key for /tmp/test_common_Bitcoin Core/667f5e5269ae84d88253c4870a102977a9eaf2d3f0a9c8b5c3572b5cd1a8be09/chainstate: 3ed985f8e1400ea3
2023-01-30T17:19:34.390169Z [test] [validation.cpp:5261] [MaybeRebalanceCaches] [snapshot] allocating all cache to the IBD chainstate
2023-01-30T17:19:34.390283Z [test] [validation.cpp:4804] [ResizeCoinsCaches] [Chainstate [ibd] @ height -1 (null)] resized coinsdb cache to 8.0 MiB
2023-01-30T17:19:34.390367Z [test] [validation.cpp:4806] [ResizeCoinsCaches] [Chainstate [ibd] @ height -1 (null)] resized coinsUninitialized bytes in __interceptor_strlen at offset 9 inside [0x72e00000b928, 10)
==44458==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x315b55b in sqlite3Strlen30 (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x315b55b)
    #1 0x318f7c0 in sqlite3VdbeExec (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x318f7c0)
    #2 0x3162363 in sqlite3Step (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x3162363)
    #3 0x315d941 in sqlite3_step (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x315d941)
    #4 0x3166cae in sqlite3_exec (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x3166cae)
    #5 0x1e00359 in wallet::SetPragma(sqlite3*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) src/wallet/sqlite.cpp:80:15
    #6 0x1dfe633 in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:243:5
    #7 0x1df9e28 in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:113:9
    #8 0x1da4a7a in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique<wallet::SQLiteDatabase, char const (&) [9], char const (&) [1], wallet::DatabaseOptions&, bool>(char const (&) [9], char const (&) [1], wallet::DatabaseOptions&, bool&&) /tmp/cirrus-ci-build/ci/scratch/msan/build/include/c++/v1/memory:2068:32
    #9 0x1d92590 in wallet::CreateMockWalletDatabase(wallet::DatabaseOptions&) src/wallet/walletdb.cpp:1258:16
    #10 0x1d926db in wallet::CreateMockWalletDatabase() src/wallet/walletdb.cpp:1272:12
    #11 0x732bfb in wallet::WalletTestingSetup::WalletTestingSetup(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) src/wallet/test/wallet_test_fixture.cpp:13:48
    #12 0x174bc8d in wallet::feebumper::feebumper_tests::external_max_weight_test::external_max_weight_test() src/wallet/test/feebumper_tests.cpp:42:1
    #13 0x1748fd1 in wallet::feebumper::feebumper_tests::external_max_weight_test_invoker() src/wallet/test/feebumper_tests.cpp:42:1
    #14 0x81f5b3 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
    #15 0x61e625 in boost::function0<void>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #16 0x70a977 in boost::detail::forward::operator()() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
    #17 0x70a476 in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18
    #18 0x7001ed in boost::function0<int>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #19 0x5c7eb3 in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()> >(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
    #20 0x54f83a in boost::execution_monitor::catch_signals(boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:903:16
    #21 0x54fbb6 in boost::execution_monitor::execute(boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1301:16
    #22 0x545958 in boost::execution_monitor::vexecute(boost::function<void ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1397:5
    #23 0x54a3e3 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9
    #24 0x5c4458 in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:815:44
    #25 0x5c2b35 in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
    #26 0x5c2b35 in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
    #27 0x5489c7 in boost::unit_test::framework::run(unsigned long, bool) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:1722:29
    #28 0x56f817 in boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:250:9
    #29 0x57012e in main /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:306:12
    #30 0x7f356f937082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
    #31 0x4b0a3d in _start (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x4b0a3d)
  Uninitialized value was created by a heap allocation
    #0 0x4bcf1d in malloc (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x4bcf1d)
    #1 0x3221608 in sqlite3MemMalloc (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x3221608)
    #2 0x3157ff9 in sqlite3Malloc (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x3157ff9)
    #3 0x316b474 in setupLookaside (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x316b474)
    #4 0x316d95b in openDatabase (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x316d95b)
    #5 0x316da1a in sqlite3_open_v2 (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x316da1a)
    #6 0x1dfe3db in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:227:19
    #7 0x1df9e28 in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:113:9
    #8 0x1da4a7a in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique<wallet::SQLiteDatabase, char const (&) [9], char const (&) [1], wallet::DatabaseOptions&, bool>(char const (&) [9], char const (&) [1], wallet::DatabaseOptions&, bool&&) /tmp/cirrus-ci-build/ci/scratch/msan/build/include/c++/v1/memory:2068:32
    #9 0x1d92590 in wallet::CreateMockWalletDatabase(wallet::DatabaseOptions&) src/wallet/walletdb.cpp:1258:16
    #10 0x1d926db in wallet::CreateMockWalletDatabase() src/wallet/walletdb.cpp:1272:12
    #11 0x732bfb in wallet::WalletTestingSetup::WalletTestingSetup(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) src/wallet/test/wallet_test_fixture.cpp:13:48
    #12 0x174bc8d in wallet::feebumper::feebumper_tests::external_max_weight_test::external_max_weight_test() src/wallet/test/feebumper_tests.cpp:42:1
    #13 0x1748fd1 in wallet::feebumper::feebumper_tests::external_max_weight_test_invoker() src/wallet/test/feebumper_tests.cpp:42:1
    #14 0x81f5b3 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
    #15 0x61e625 in boost::function0<void>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #16 0x70a977 in boost::detail::forward::operator()() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
    #17 0x70a476 in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18
    #18 0x7001ed in boost::function0<int>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #19 0x5c7eb3 in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()> >(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
SUMMARY: MemorySanitizer: use-of-uninitialized-value (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x315b55b) in sqlite3Strlen30
Exiting
make[3]: *** [Makefile:21498: wallet/test/feebumper_tests.cpp.test] Error 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions