Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/bitcoin-0.18.1~dfsg/build_msvc/bitcoin_config.h Examining data/bitcoin-0.18.1~dfsg/build_msvc/libsecp256k1_config.h Examining data/bitcoin-0.18.1~dfsg/build_msvc/testconsensus/testconsensus.cpp Examining data/bitcoin-0.18.1~dfsg/src/addrdb.cpp Examining data/bitcoin-0.18.1~dfsg/src/addrdb.h Examining data/bitcoin-0.18.1~dfsg/src/addrman.cpp Examining data/bitcoin-0.18.1~dfsg/src/addrman.h Examining data/bitcoin-0.18.1~dfsg/src/amount.h Examining data/bitcoin-0.18.1~dfsg/src/arith_uint256.cpp Examining data/bitcoin-0.18.1~dfsg/src/arith_uint256.h Examining data/bitcoin-0.18.1~dfsg/src/attributes.h Examining data/bitcoin-0.18.1~dfsg/src/banman.cpp Examining data/bitcoin-0.18.1~dfsg/src/banman.h Examining data/bitcoin-0.18.1~dfsg/src/base58.cpp Examining data/bitcoin-0.18.1~dfsg/src/base58.h Examining data/bitcoin-0.18.1~dfsg/src/bech32.cpp Examining data/bitcoin-0.18.1~dfsg/src/bech32.h Examining data/bitcoin-0.18.1~dfsg/src/bench/base58.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/bech32.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/bench.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/bench.h Examining data/bitcoin-0.18.1~dfsg/src/bench/bench_bitcoin.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/block_assemble.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/ccoins_caching.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/checkblock.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/checkqueue.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/coin_selection.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/crypto_hash.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/duplicate_inputs.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/examples.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/gcs_filter.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/lockedpool.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/mempool_eviction.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/merkle_root.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/prevector.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/rollingbloom.cpp Examining data/bitcoin-0.18.1~dfsg/src/bench/verify_script.cpp Examining data/bitcoin-0.18.1~dfsg/src/bitcoin-cli.cpp Examining data/bitcoin-0.18.1~dfsg/src/bitcoin-tx.cpp Examining data/bitcoin-0.18.1~dfsg/src/bitcoin-wallet.cpp Examining data/bitcoin-0.18.1~dfsg/src/bitcoind.cpp Examining data/bitcoin-0.18.1~dfsg/src/blockencodings.cpp Examining data/bitcoin-0.18.1~dfsg/src/blockencodings.h Examining data/bitcoin-0.18.1~dfsg/src/blockfilter.cpp Examining data/bitcoin-0.18.1~dfsg/src/blockfilter.h Examining data/bitcoin-0.18.1~dfsg/src/bloom.cpp Examining data/bitcoin-0.18.1~dfsg/src/bloom.h Examining data/bitcoin-0.18.1~dfsg/src/chain.cpp Examining data/bitcoin-0.18.1~dfsg/src/chain.h Examining data/bitcoin-0.18.1~dfsg/src/chainparams.cpp Examining data/bitcoin-0.18.1~dfsg/src/chainparams.h Examining data/bitcoin-0.18.1~dfsg/src/chainparamsbase.cpp Examining data/bitcoin-0.18.1~dfsg/src/chainparamsbase.h Examining data/bitcoin-0.18.1~dfsg/src/chainparamsseeds.h Examining data/bitcoin-0.18.1~dfsg/src/checkpoints.cpp Examining data/bitcoin-0.18.1~dfsg/src/checkpoints.h Examining data/bitcoin-0.18.1~dfsg/src/checkqueue.h Examining data/bitcoin-0.18.1~dfsg/src/clientversion.cpp Examining data/bitcoin-0.18.1~dfsg/src/clientversion.h Examining data/bitcoin-0.18.1~dfsg/src/coins.cpp Examining data/bitcoin-0.18.1~dfsg/src/coins.h Examining data/bitcoin-0.18.1~dfsg/src/compat.h Examining data/bitcoin-0.18.1~dfsg/src/compat/assumptions.h Examining data/bitcoin-0.18.1~dfsg/src/compat/byteswap.h Examining data/bitcoin-0.18.1~dfsg/src/compat/endian.h Examining data/bitcoin-0.18.1~dfsg/src/compat/glibc_compat.cpp Examining data/bitcoin-0.18.1~dfsg/src/compat/glibc_sanity.cpp Examining data/bitcoin-0.18.1~dfsg/src/compat/glibcxx_sanity.cpp Examining data/bitcoin-0.18.1~dfsg/src/compat/sanity.h Examining data/bitcoin-0.18.1~dfsg/src/compat/strnlen.cpp Examining data/bitcoin-0.18.1~dfsg/src/compressor.cpp Examining data/bitcoin-0.18.1~dfsg/src/compressor.h Examining data/bitcoin-0.18.1~dfsg/src/consensus/consensus.h Examining data/bitcoin-0.18.1~dfsg/src/consensus/merkle.cpp Examining data/bitcoin-0.18.1~dfsg/src/consensus/merkle.h Examining data/bitcoin-0.18.1~dfsg/src/consensus/params.h Examining data/bitcoin-0.18.1~dfsg/src/consensus/tx_verify.cpp Examining data/bitcoin-0.18.1~dfsg/src/consensus/tx_verify.h Examining data/bitcoin-0.18.1~dfsg/src/consensus/validation.h Examining data/bitcoin-0.18.1~dfsg/src/core_io.h Examining data/bitcoin-0.18.1~dfsg/src/core_memusage.h Examining data/bitcoin-0.18.1~dfsg/src/core_read.cpp Examining data/bitcoin-0.18.1~dfsg/src/core_write.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/aes.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/chacha20.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/chacha20.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/common.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c Examining data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/ctaes.c Examining data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/ctaes.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/test.c Examining data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha1.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha1.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha256.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha256_avx2.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha256_shani.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha256_sse4.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha256_sse41.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha512.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/sha512.h Examining data/bitcoin-0.18.1~dfsg/src/crypto/siphash.cpp Examining data/bitcoin-0.18.1~dfsg/src/crypto/siphash.h Examining data/bitcoin-0.18.1~dfsg/src/cuckoocache.h Examining data/bitcoin-0.18.1~dfsg/src/dbwrapper.h Examining data/bitcoin-0.18.1~dfsg/src/dummywallet.cpp Examining data/bitcoin-0.18.1~dfsg/src/fs.cpp Examining data/bitcoin-0.18.1~dfsg/src/fs.h Examining data/bitcoin-0.18.1~dfsg/src/hash.cpp Examining data/bitcoin-0.18.1~dfsg/src/hash.h Examining data/bitcoin-0.18.1~dfsg/src/httprpc.cpp Examining data/bitcoin-0.18.1~dfsg/src/httprpc.h Examining data/bitcoin-0.18.1~dfsg/src/httpserver.cpp Examining data/bitcoin-0.18.1~dfsg/src/httpserver.h Examining data/bitcoin-0.18.1~dfsg/src/index/base.cpp Examining data/bitcoin-0.18.1~dfsg/src/index/base.h Examining data/bitcoin-0.18.1~dfsg/src/index/txindex.cpp Examining data/bitcoin-0.18.1~dfsg/src/index/txindex.h Examining data/bitcoin-0.18.1~dfsg/src/indirectmap.h Examining data/bitcoin-0.18.1~dfsg/src/init.cpp Examining data/bitcoin-0.18.1~dfsg/src/init.h Examining data/bitcoin-0.18.1~dfsg/src/interfaces/chain.cpp Examining data/bitcoin-0.18.1~dfsg/src/interfaces/chain.h Examining data/bitcoin-0.18.1~dfsg/src/interfaces/handler.cpp Examining data/bitcoin-0.18.1~dfsg/src/interfaces/handler.h Examining data/bitcoin-0.18.1~dfsg/src/interfaces/node.cpp Examining data/bitcoin-0.18.1~dfsg/src/interfaces/node.h Examining data/bitcoin-0.18.1~dfsg/src/interfaces/wallet.cpp Examining data/bitcoin-0.18.1~dfsg/src/interfaces/wallet.h Examining data/bitcoin-0.18.1~dfsg/src/key.cpp Examining data/bitcoin-0.18.1~dfsg/src/key.h Examining data/bitcoin-0.18.1~dfsg/src/key_io.cpp Examining data/bitcoin-0.18.1~dfsg/src/key_io.h Examining data/bitcoin-0.18.1~dfsg/src/keystore.cpp Examining data/bitcoin-0.18.1~dfsg/src/keystore.h Examining data/bitcoin-0.18.1~dfsg/src/limitedmap.h Examining data/bitcoin-0.18.1~dfsg/src/logging.cpp Examining data/bitcoin-0.18.1~dfsg/src/logging.h Examining data/bitcoin-0.18.1~dfsg/src/memusage.h Examining data/bitcoin-0.18.1~dfsg/src/merkleblock.cpp Examining data/bitcoin-0.18.1~dfsg/src/merkleblock.h Examining data/bitcoin-0.18.1~dfsg/src/miner.cpp Examining data/bitcoin-0.18.1~dfsg/src/miner.h Examining data/bitcoin-0.18.1~dfsg/src/net.cpp Examining data/bitcoin-0.18.1~dfsg/src/net.h Examining data/bitcoin-0.18.1~dfsg/src/net_processing.cpp Examining data/bitcoin-0.18.1~dfsg/src/net_processing.h Examining data/bitcoin-0.18.1~dfsg/src/netaddress.cpp Examining data/bitcoin-0.18.1~dfsg/src/netaddress.h Examining data/bitcoin-0.18.1~dfsg/src/netbase.cpp Examining data/bitcoin-0.18.1~dfsg/src/netbase.h Examining data/bitcoin-0.18.1~dfsg/src/netmessagemaker.h Examining data/bitcoin-0.18.1~dfsg/src/node/transaction.cpp Examining data/bitcoin-0.18.1~dfsg/src/node/transaction.h Examining data/bitcoin-0.18.1~dfsg/src/noui.cpp Examining data/bitcoin-0.18.1~dfsg/src/noui.h Examining data/bitcoin-0.18.1~dfsg/src/optional.h Examining data/bitcoin-0.18.1~dfsg/src/outputtype.cpp Examining data/bitcoin-0.18.1~dfsg/src/outputtype.h Examining data/bitcoin-0.18.1~dfsg/src/policy/feerate.cpp Examining data/bitcoin-0.18.1~dfsg/src/policy/feerate.h Examining data/bitcoin-0.18.1~dfsg/src/policy/fees.cpp Examining data/bitcoin-0.18.1~dfsg/src/policy/fees.h Examining data/bitcoin-0.18.1~dfsg/src/policy/policy.cpp Examining data/bitcoin-0.18.1~dfsg/src/policy/policy.h Examining data/bitcoin-0.18.1~dfsg/src/policy/rbf.cpp Examining data/bitcoin-0.18.1~dfsg/src/policy/rbf.h Examining data/bitcoin-0.18.1~dfsg/src/pow.cpp Examining data/bitcoin-0.18.1~dfsg/src/pow.h Examining data/bitcoin-0.18.1~dfsg/src/prevector.h Examining data/bitcoin-0.18.1~dfsg/src/primitives/block.cpp Examining data/bitcoin-0.18.1~dfsg/src/primitives/block.h Examining data/bitcoin-0.18.1~dfsg/src/primitives/transaction.cpp Examining data/bitcoin-0.18.1~dfsg/src/primitives/transaction.h Examining data/bitcoin-0.18.1~dfsg/src/protocol.cpp Examining data/bitcoin-0.18.1~dfsg/src/protocol.h Examining data/bitcoin-0.18.1~dfsg/src/psbt.cpp Examining data/bitcoin-0.18.1~dfsg/src/psbt.h Examining data/bitcoin-0.18.1~dfsg/src/pubkey.cpp Examining data/bitcoin-0.18.1~dfsg/src/pubkey.h Examining data/bitcoin-0.18.1~dfsg/src/qt/addressbookpage.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/addressbookpage.h Examining data/bitcoin-0.18.1~dfsg/src/qt/addresstablemodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/addresstablemodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/askpassphrasedialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/askpassphrasedialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/bantablemodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bantablemodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoin.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoin.h Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinaddressvalidator.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinaddressvalidator.h Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinamountfield.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinamountfield.h Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoingui.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoingui.h Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinstrings.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinunits.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/bitcoinunits.h Examining data/bitcoin-0.18.1~dfsg/src/qt/clientmodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/clientmodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/coincontroldialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/coincontroldialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/coincontroltreewidget.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/coincontroltreewidget.h Examining data/bitcoin-0.18.1~dfsg/src/qt/csvmodelwriter.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/csvmodelwriter.h Examining data/bitcoin-0.18.1~dfsg/src/qt/editaddressdialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/editaddressdialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/guiconstants.h Examining data/bitcoin-0.18.1~dfsg/src/qt/guiutil.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/guiutil.h Examining data/bitcoin-0.18.1~dfsg/src/qt/intro.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/intro.h Examining data/bitcoin-0.18.1~dfsg/src/qt/macdockiconhandler.h Examining data/bitcoin-0.18.1~dfsg/src/qt/macnotificationhandler.h Examining data/bitcoin-0.18.1~dfsg/src/qt/macos_appnap.h Examining data/bitcoin-0.18.1~dfsg/src/qt/main.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/modaloverlay.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/modaloverlay.h Examining data/bitcoin-0.18.1~dfsg/src/qt/networkstyle.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/networkstyle.h Examining data/bitcoin-0.18.1~dfsg/src/qt/notificator.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/notificator.h Examining data/bitcoin-0.18.1~dfsg/src/qt/openuridialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/openuridialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/optionsdialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/optionsdialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/optionsmodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/optionsmodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/overviewpage.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/overviewpage.h Examining data/bitcoin-0.18.1~dfsg/src/qt/paymentrequestplus.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/paymentrequestplus.h Examining data/bitcoin-0.18.1~dfsg/src/qt/paymentserver.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/paymentserver.h Examining data/bitcoin-0.18.1~dfsg/src/qt/peertablemodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/peertablemodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/platformstyle.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/platformstyle.h Examining data/bitcoin-0.18.1~dfsg/src/qt/qvalidatedlineedit.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/qvalidatedlineedit.h Examining data/bitcoin-0.18.1~dfsg/src/qt/qvaluecombobox.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/qvaluecombobox.h Examining data/bitcoin-0.18.1~dfsg/src/qt/receivecoinsdialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/receivecoinsdialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/receiverequestdialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/receiverequestdialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/recentrequeststablemodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/recentrequeststablemodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/rpcconsole.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/rpcconsole.h Examining data/bitcoin-0.18.1~dfsg/src/qt/sendcoinsdialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/sendcoinsdialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/sendcoinsentry.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/sendcoinsentry.h Examining data/bitcoin-0.18.1~dfsg/src/qt/signverifymessagedialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/signverifymessagedialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/splashscreen.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/splashscreen.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/addressbooktests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/addressbooktests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/apptests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/apptests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/compattests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/compattests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/paymentrequestdata.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/paymentservertests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/paymentservertests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/rpcnestedtests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/rpcnestedtests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/uritests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/uritests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/util.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/util.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/wallettests.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/test/wallettests.h Examining data/bitcoin-0.18.1~dfsg/src/qt/test/test_main.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/trafficgraphwidget.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/trafficgraphwidget.h Examining data/bitcoin-0.18.1~dfsg/src/qt/transactiondesc.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/transactiondesc.h Examining data/bitcoin-0.18.1~dfsg/src/qt/transactiondescdialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/transactiondescdialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/transactionfilterproxy.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/transactionfilterproxy.h Examining data/bitcoin-0.18.1~dfsg/src/qt/transactionrecord.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/transactionrecord.h Examining data/bitcoin-0.18.1~dfsg/src/qt/transactiontablemodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/transactiontablemodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/transactionview.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/transactionview.h Examining data/bitcoin-0.18.1~dfsg/src/qt/utilitydialog.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/utilitydialog.h Examining data/bitcoin-0.18.1~dfsg/src/qt/walletcontroller.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/walletcontroller.h Examining data/bitcoin-0.18.1~dfsg/src/qt/walletframe.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/walletframe.h Examining data/bitcoin-0.18.1~dfsg/src/qt/walletmodel.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/walletmodel.h Examining data/bitcoin-0.18.1~dfsg/src/qt/walletmodeltransaction.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/walletmodeltransaction.h Examining data/bitcoin-0.18.1~dfsg/src/qt/walletview.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/walletview.h Examining data/bitcoin-0.18.1~dfsg/src/qt/winshutdownmonitor.cpp Examining data/bitcoin-0.18.1~dfsg/src/qt/winshutdownmonitor.h Examining data/bitcoin-0.18.1~dfsg/src/random.cpp Examining data/bitcoin-0.18.1~dfsg/src/random.h Examining data/bitcoin-0.18.1~dfsg/src/rest.cpp Examining data/bitcoin-0.18.1~dfsg/src/reverse_iterator.h Examining data/bitcoin-0.18.1~dfsg/src/reverselock.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/blockchain.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/client.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/client.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/mining.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/mining.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/misc.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/net.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/protocol.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/protocol.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/rawtransaction.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/rawtransaction.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/register.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/server.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/server.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/util.cpp Examining data/bitcoin-0.18.1~dfsg/src/rpc/util.h Examining data/bitcoin-0.18.1~dfsg/src/rpc/blockchain.cpp Examining data/bitcoin-0.18.1~dfsg/src/scheduler.cpp Examining data/bitcoin-0.18.1~dfsg/src/scheduler.h Examining data/bitcoin-0.18.1~dfsg/src/script/bitcoinconsensus.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/bitcoinconsensus.h Examining data/bitcoin-0.18.1~dfsg/src/script/descriptor.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/descriptor.h Examining data/bitcoin-0.18.1~dfsg/src/script/interpreter.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/interpreter.h Examining data/bitcoin-0.18.1~dfsg/src/script/ismine.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/ismine.h Examining data/bitcoin-0.18.1~dfsg/src/script/script.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/script.h Examining data/bitcoin-0.18.1~dfsg/src/script/script_error.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/script_error.h Examining data/bitcoin-0.18.1~dfsg/src/script/sigcache.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/sigcache.h Examining data/bitcoin-0.18.1~dfsg/src/script/sign.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/sign.h Examining data/bitcoin-0.18.1~dfsg/src/script/standard.cpp Examining data/bitcoin-0.18.1~dfsg/src/script/standard.h Examining data/bitcoin-0.18.1~dfsg/src/serialize.h Examining data/bitcoin-0.18.1~dfsg/src/shutdown.cpp Examining data/bitcoin-0.18.1~dfsg/src/shutdown.h Examining data/bitcoin-0.18.1~dfsg/src/span.h Examining data/bitcoin-0.18.1~dfsg/src/streams.h Examining data/bitcoin-0.18.1~dfsg/src/support/allocators/secure.h Examining data/bitcoin-0.18.1~dfsg/src/support/allocators/zeroafterfree.h Examining data/bitcoin-0.18.1~dfsg/src/support/cleanse.cpp Examining data/bitcoin-0.18.1~dfsg/src/support/cleanse.h Examining data/bitcoin-0.18.1~dfsg/src/support/events.h Examining data/bitcoin-0.18.1~dfsg/src/support/lockedpool.cpp Examining data/bitcoin-0.18.1~dfsg/src/support/lockedpool.h Examining data/bitcoin-0.18.1~dfsg/src/sync.cpp Examining data/bitcoin-0.18.1~dfsg/src/sync.h Examining data/bitcoin-0.18.1~dfsg/src/test/addrman_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/allocator_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/amount_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/arith_uint256_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/base32_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/base58_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/base64_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/bech32_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/bip32_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/blockchain_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/blockencodings_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/blockfilter_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/bloom_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/bswap_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/checkqueue_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/coins_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/compilerbug_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/compress_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/crypto_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/cuckoocache_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/dbwrapper_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/denialofservice_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/descriptor_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/fs_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/fuzz/deserialize.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/fuzz/fuzz.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/fuzz/fuzz.h Examining data/bitcoin-0.18.1~dfsg/src/test/fuzz/script_flags.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/gen/crypto_gen.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/gen/crypto_gen.h Examining data/bitcoin-0.18.1~dfsg/src/test/getarg_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/hash_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/key_io_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/key_properties.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/key_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/limitedmap_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/main_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/mempool_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/merkle_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/merkleblock_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/miner_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/multisig_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/net_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/netbase_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/pmt_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/policyestimator_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/pow_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/prevector_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/raii_event_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/random_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/reverselock_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/rpc_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/sanity_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/scheduler_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/script_p2sh_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/script_standard_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/scriptnum10.h Examining data/bitcoin-0.18.1~dfsg/src/test/scriptnum_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/serialize_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/sighash_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/sigopcount_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/skiplist_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/streams_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/sync_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/test_bitcoin.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/test_bitcoin.h Examining data/bitcoin-0.18.1~dfsg/src/test/test_bitcoin_main.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/timedata_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/torcontrol_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/transaction_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/txindex_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/txvalidation_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/txvalidationcache_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/uint256_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/util_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/validation_block_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/test/versionbits_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/threadinterrupt.cpp Examining data/bitcoin-0.18.1~dfsg/src/threadinterrupt.h Examining data/bitcoin-0.18.1~dfsg/src/threadsafety.h Examining data/bitcoin-0.18.1~dfsg/src/timedata.cpp Examining data/bitcoin-0.18.1~dfsg/src/timedata.h Examining data/bitcoin-0.18.1~dfsg/src/tinyformat.h Examining data/bitcoin-0.18.1~dfsg/src/torcontrol.cpp Examining data/bitcoin-0.18.1~dfsg/src/torcontrol.h Examining data/bitcoin-0.18.1~dfsg/src/txdb.cpp Examining data/bitcoin-0.18.1~dfsg/src/txdb.h Examining data/bitcoin-0.18.1~dfsg/src/txmempool.cpp Examining data/bitcoin-0.18.1~dfsg/src/txmempool.h Examining data/bitcoin-0.18.1~dfsg/src/ui_interface.cpp Examining data/bitcoin-0.18.1~dfsg/src/ui_interface.h Examining data/bitcoin-0.18.1~dfsg/src/uint256.cpp Examining data/bitcoin-0.18.1~dfsg/src/uint256.h Examining data/bitcoin-0.18.1~dfsg/src/undo.h Examining data/bitcoin-0.18.1~dfsg/src/util/bip32.cpp Examining data/bitcoin-0.18.1~dfsg/src/util/bip32.h Examining data/bitcoin-0.18.1~dfsg/src/util/bytevectorhash.cpp Examining data/bitcoin-0.18.1~dfsg/src/util/bytevectorhash.h Examining data/bitcoin-0.18.1~dfsg/src/util/memory.h Examining data/bitcoin-0.18.1~dfsg/src/util/moneystr.cpp Examining data/bitcoin-0.18.1~dfsg/src/util/moneystr.h Examining data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp Examining data/bitcoin-0.18.1~dfsg/src/util/strencodings.h Examining data/bitcoin-0.18.1~dfsg/src/util/system.cpp Examining data/bitcoin-0.18.1~dfsg/src/util/system.h Examining data/bitcoin-0.18.1~dfsg/src/util/time.cpp Examining data/bitcoin-0.18.1~dfsg/src/util/time.h Examining data/bitcoin-0.18.1~dfsg/src/validation.cpp Examining data/bitcoin-0.18.1~dfsg/src/validation.h Examining data/bitcoin-0.18.1~dfsg/src/validationinterface.cpp Examining data/bitcoin-0.18.1~dfsg/src/validationinterface.h Examining data/bitcoin-0.18.1~dfsg/src/version.h Examining data/bitcoin-0.18.1~dfsg/src/versionbits.cpp Examining data/bitcoin-0.18.1~dfsg/src/versionbits.h Examining data/bitcoin-0.18.1~dfsg/src/versionbitsinfo.cpp Examining data/bitcoin-0.18.1~dfsg/src/versionbitsinfo.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/coincontrol.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/coincontrol.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/coinselection.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/coinselection.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/crypter.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/db.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/feebumper.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/feebumper.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/fees.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/fees.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/init.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/psbtwallet.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/psbtwallet.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/rpcdump.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/rpcwallet.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/rpcwallet.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/coinselector_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/db_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/init_test_fixture.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/init_test_fixture.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/init_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/psbt_wallet_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_test_fixture.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_test_fixture.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_tests.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/wallet.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/wallet.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/walletdb.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/walletdb.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/wallettool.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/wallettool.h Examining data/bitcoin-0.18.1~dfsg/src/wallet/walletutil.cpp Examining data/bitcoin-0.18.1~dfsg/src/wallet/walletutil.h Examining data/bitcoin-0.18.1~dfsg/src/walletinitinterface.h Examining data/bitcoin-0.18.1~dfsg/src/warnings.cpp Examining data/bitcoin-0.18.1~dfsg/src/warnings.h Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqabstractnotifier.cpp Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqabstractnotifier.h Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqconfig.h Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqnotificationinterface.cpp Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqnotificationinterface.h Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.cpp Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.h Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqrpc.cpp Examining data/bitcoin-0.18.1~dfsg/src/zmq/zmqrpc.h Examining data/bitcoin-0.18.1~dfsg/src/dbwrapper.cpp FINAL RESULTS: data/bitcoin-0.18.1~dfsg/src/qt/guiutil.cpp:664:21: [5] (race) readlink: This accepts filename arguments; if an attacker can move those files or change the link content, a race condition results. Also, it does not terminate with ASCII NUL. (CWE-362, CWE-20). Reconsider approach. ssize_t r = readlink("/proc/self/exe", pszExePath, sizeof(pszExePath) - 1); data/bitcoin-0.18.1~dfsg/src/dbwrapper.cpp:49:26: [4] (format) vsnprintf: If format strings can be influenced by an attacker, they can be exploited, and note that sprintf variations do not always \0-terminate (CWE-134). Use a constant for the format specification. p += vsnprintf(p, limit - p, format, backup_ap); data/bitcoin-0.18.1~dfsg/src/qt/bitcoin.cpp:77:39: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. QString lang_territory = QLocale::system().name(); data/bitcoin-0.18.1~dfsg/src/tinyformat.h:984:6: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. void printf(const char* fmt, const Args&... args) data/bitcoin-0.18.1~dfsg/src/tinyformat.h:1010:13: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. inline void printf(const char* fmt) data/bitcoin-0.18.1~dfsg/src/tinyformat.h:1038:6: [4] (format) printf: If format strings can be influenced by an attacker, they can be exploited (CWE-134). Use a constant for the format specification. void printf(const char* fmt, TINYFORMAT_VARARGS(n)) \ data/bitcoin-0.18.1~dfsg/src/util/system.cpp:1128:18: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. int nErr = ::system(strCommand.c_str()); data/bitcoin-0.18.1~dfsg/src/wallet/init.cpp:137:16: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. boost::system::error_code error; data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:22:14: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. CCrypter crypt; data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:23:5: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. crypt.SetKeyFromPassphrase(passphrase, vchSalt, rounds, 0); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:26:36: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. BOOST_CHECK_MESSAGE(memcmp(crypt.vchKey.data(), correctKey.data(), crypt.vchKey.size()) == 0, \ data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:26:76: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. BOOST_CHECK_MESSAGE(memcmp(crypt.vchKey.data(), correctKey.data(), crypt.vchKey.size()) == 0, \ data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:27:20: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. HexStr(crypt.vchKey.begin(), crypt.vchKey.end()) + std::string(" != ") + HexStr(correctKey.begin(), correctKey.end())); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:27:42: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. HexStr(crypt.vchKey.begin(), crypt.vchKey.end()) + std::string(" != ") + HexStr(correctKey.begin(), correctKey.end())); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:29:36: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. BOOST_CHECK_MESSAGE(memcmp(crypt.vchIV.data(), correctIV.data(), crypt.vchIV.size()) == 0, data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:29:74: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. BOOST_CHECK_MESSAGE(memcmp(crypt.vchIV.data(), correctIV.data(), crypt.vchIV.size()) == 0, data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:30:20: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. HexStr(crypt.vchIV.begin(), crypt.vchIV.end()) + std::string(" != ") + HexStr(correctIV.begin(), correctIV.end())); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:30:41: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. HexStr(crypt.vchIV.begin(), crypt.vchIV.end()) + std::string(" != ") + HexStr(correctIV.begin(), correctIV.end())); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:42:41: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. static void TestDecrypt(const CCrypter& crypt, const std::vector<unsigned char>& vchCiphertext, \ data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:46:5: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. crypt.Decrypt(vchCiphertext, vchDecrypted); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:51:47: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. static void TestEncryptSingle(const CCrypter& crypt, const CKeyingMaterial& vchPlaintext, data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:55:5: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. crypt.Encrypt(vchPlaintext, vchCiphertext); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:61:17: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestDecrypt(crypt, vchCiphertext, vchPlaintext2); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:64:41: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. static void TestEncrypt(const CCrypter& crypt, const std::vector<unsigned char>& vchPlaintextIn, \ data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:67:23: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestEncryptSingle(crypt, CKeyingMaterial(vchPlaintextIn.begin(), vchPlaintextIn.end()), vchCiphertextCorrect); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:69:27: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestEncryptSingle(crypt, CKeyingMaterial(i, vchPlaintextIn.end())); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:93:14: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. CCrypter crypt; data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:94:5: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. crypt.SetKeyFromPassphrase("passphrase", vchSalt, 25000, 0); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:95:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestEncrypt(crypt, ParseHex("22bcade09ac03ff6386914359cfe885cfeb5f77ff0d670f102f619687453b29d")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:100:34: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestEncrypt(crypt, std::vector<unsigned char>(hash.begin(), hash.end())); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:108:14: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. CCrypter crypt; data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:109:5: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. crypt.SetKeyFromPassphrase("passphrase", vchSalt, 25000, 0); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:112:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt,ParseHex("795643ce39d736088367822cdc50535ec6f103715e3e48f4f3b1a60a08ef59ca")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:113:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt,ParseHex("de096f4a8f9bd97db012aa9d90d74de8cdea779c3ee8bc7633d8b5d6da703486")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:114:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt,ParseHex("32d0a8974e3afd9c6c3ebf4d66aa4e6419f8c173de25947f98cf8b7ace49449c")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:115:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt,ParseHex("e7c055cca2faa78cb9ac22c9357a90b4778ded9b2cc220a14cea49f931e596ea")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:116:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt,ParseHex("b88efddd668a6801d19516d6830da4ae9811988ccbaf40df8fbb72f3f4d335fd")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:117:30: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt,ParseHex("8cae76aa6a43694e961ebcb28c8ca8f8540b84153d72865e8561ddd93fa7bfa9")); data/bitcoin-0.18.1~dfsg/src/wallet/test/wallet_crypto_tests.cpp:122:34: [4] (crypto) crypt: The crypt functions use a poor one-way hashing algorithm; since they only accept passwords of 8 characters or fewer and only a two-byte salt, they are excessively vulnerable to dictionary attacks given today's faster computing equipment (CWE-327). Use a different algorithm, such as SHA-256, with a larger, non-repeating salt. TestCrypter::TestDecrypt(crypt, std::vector<unsigned char>(hash.begin(), hash.end())); data/bitcoin-0.18.1~dfsg/src/wallet/walletutil.cpp:36:12: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. boost::system::error_code ec; data/bitcoin-0.18.1~dfsg/src/wallet/walletutil.cpp:60:12: [4] (shell) system: This causes a new program to execute and is difficult to use safely (CWE-78). try using a library call that implements the same functionality if available. boost::system::error_code ec; data/bitcoin-0.18.1~dfsg/src/qt/guiutil.cpp:623:27: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. char* pszConfigHome = getenv("XDG_CONFIG_HOME"); data/bitcoin-0.18.1~dfsg/src/qt/guiutil.cpp:625:21: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. char* pszHome = getenv("HOME"); data/bitcoin-0.18.1~dfsg/src/util/system.cpp:692:21: [3] (buffer) getenv: Environment variables are untrustable input if they can be set by an attacker. They can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. char* pszHome = getenv("HOME"); data/bitcoin-0.18.1~dfsg/src/addrdb.cpp:45:28: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *file = fsbridge::fopen(pathTmp, "wb"); data/bitcoin-0.18.1~dfsg/src/addrdb.cpp:69:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char pchMsgTmp[4]; data/bitcoin-0.18.1~dfsg/src/addrdb.cpp:98:28: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *file = fsbridge::fopen(path, "rb"); data/bitcoin-0.18.1~dfsg/src/bitcoin-tx.cpp:155:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *f = fopen(filename.c_str(), "r"); data/bitcoin-0.18.1~dfsg/src/bitcoin-tx.cpp:164:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[4096]; data/bitcoin-0.18.1~dfsg/src/bitcoin-tx.cpp:754:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[4096]; data/bitcoin-0.18.1~dfsg/src/compat/glibc_compat.cpp:18:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. extern "C" void* memcpy(void* a, const void* b, size_t c) data/bitcoin-0.18.1~dfsg/src/compat/glibc_sanity.cpp:15:18: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. extern "C" void* memcpy(void* a, const void* b, size_t c); data/bitcoin-0.18.1~dfsg/src/compat/glibc_sanity.cpp:18:12: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. return memcpy(a, b, c); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:25:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&hash, &script[3], 20); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:35:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&hash, &script[2], 20); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:62:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&out[1], &keyID, 20); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:69:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&out[1], &scriptID, 20); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:75:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&out[1], &pubkey[1], 32); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:104:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&script[3], in.data(), 20); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:112:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&script[2], in.data(), 20); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:120:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&script[2], in.data(), 32); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:125:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char vch[33] = {}; data/bitcoin-0.18.1~dfsg/src/compressor.cpp:127:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&vch[1], in.data(), 32); data/bitcoin-0.18.1~dfsg/src/compressor.cpp:134:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&script[1], pubkey.begin(), 65); data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:15:45: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128Encrypt::AES128Encrypt(const unsigned char key[16]) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:25:38: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES128Encrypt::Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:25:74: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES128Encrypt::Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:30:45: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128Decrypt::AES128Decrypt(const unsigned char key[16]) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:40:38: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES128Decrypt::Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:40:73: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES128Decrypt::Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:45:45: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256Encrypt::AES256Encrypt(const unsigned char key[32]) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:55:38: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES256Encrypt::Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:55:74: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES256Encrypt::Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:60:45: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256Decrypt::AES256Decrypt(const unsigned char key[32]) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:70:38: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES256Decrypt::Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:70:73: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void AES256Decrypt::Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:77:52: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static int CBCEncrypt(const T& enc, const unsigned char iv[AES_BLOCKSIZE], const unsigned char* data, int size, bool pad, unsigned char* out) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:81:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char mixed[AES_BLOCKSIZE]; data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:89:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(mixed, iv, AES_BLOCKSIZE); data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:96:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(mixed, out + written, AES_BLOCKSIZE); data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:113:52: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static int CBCDecrypt(const T& dec, const unsigned char iv[AES_BLOCKSIZE], const unsigned char* data, int size, bool pad, unsigned char* out) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:153:51: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCEncrypt::AES256CBCEncrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:153:92: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCEncrypt::AES256CBCEncrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:156:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(iv, ivIn, AES_BLOCKSIZE); data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:169:51: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCDecrypt::AES256CBCDecrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:169:92: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCDecrypt::AES256CBCDecrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:172:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(iv, ivIn, AES_BLOCKSIZE); data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:186:51: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCEncrypt::AES128CBCEncrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:186:92: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCEncrypt::AES128CBCEncrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:189:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(iv, ivIn, AES_BLOCKSIZE); data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:202:51: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCDecrypt::AES128CBCDecrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:202:92: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCDecrypt::AES128CBCDecrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn) data/bitcoin-0.18.1~dfsg/src/crypto/aes.cpp:205:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(iv, ivIn, AES_BLOCKSIZE); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:25:43: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. explicit AES128Encrypt(const unsigned char key[16]); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:27:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:27:63: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:37:43: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. explicit AES128Decrypt(const unsigned char key[16]); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:39:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:39:62: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:49:43: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. explicit AES256Encrypt(const unsigned char key[32]); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:51:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:51:63: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Encrypt(unsigned char ciphertext[16], const unsigned char plaintext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:61:43: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. explicit AES256Decrypt(const unsigned char key[32]); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:63:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:63:62: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Decrypt(unsigned char plaintext[16], const unsigned char ciphertext[16]) const; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:69:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCEncrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:69:78: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCEncrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:76:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char iv[AES_BLOCKSIZE]; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:82:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCDecrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:82:78: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES256CBCDecrypt(const unsigned char key[AES256_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:89:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char iv[AES_BLOCKSIZE]; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:95:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCEncrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:95:78: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCEncrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:102:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char iv[AES_BLOCKSIZE]; data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:108:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCDecrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:108:78: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. AES128CBCDecrypt(const unsigned char key[AES128_KEYSIZE], const unsigned char ivIn[AES_BLOCKSIZE], bool padIn); data/bitcoin-0.18.1~dfsg/src/crypto/aes.h:115:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char iv[AES_BLOCKSIZE]; data/bitcoin-0.18.1~dfsg/src/crypto/chacha20.cpp:79:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char tmp[64]; data/bitcoin-0.18.1~dfsg/src/crypto/common.h:20:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char*)&x, ptr, 2); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:27:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char*)&x, ptr, 4); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:34:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char*)&x, ptr, 8); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:41:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, (char*)&v, 2); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:47:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, (char*)&v, 4); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:53:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, (char*)&v, 8); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:59:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char*)&x, ptr, 4); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:66:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((char*)&x, ptr, 8); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:73:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, (char*)&v, 4); data/bitcoin-0.18.1~dfsg/src/crypto/common.h:79:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, (char*)&v, 8); data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:69:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char key[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:75:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char scratch[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:84:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char scratch[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:101:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char key[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:107:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char scratch[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:116:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char scratch[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:134:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char key[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:140:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char scratch[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/bench.c:149:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char scratch[16] = {0}; data/bitcoin-0.18.1~dfsg/src/crypto/ctaes/test.c:64:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char key[32], plain[16], cipher[16], ciphered[16], deciphered[16]; data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.cpp:11:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char rkey[64]; data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.cpp:13:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rkey, key, keylen); data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.cpp:29:38: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CHMAC_SHA256::Finalize(unsigned char hash[OUTPUT_SIZE]) data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.cpp:31:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char temp[32]; data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha256.h:29:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]); data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.cpp:11:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char rkey[128]; data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.cpp:13:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(rkey, key, keylen); data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.cpp:29:38: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CHMAC_SHA512::Finalize(unsigned char hash[OUTPUT_SIZE]) data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.cpp:31:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char temp[64]; data/bitcoin-0.18.1~dfsg/src/crypto/hmac_sha512.h:29:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]); data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.cpp:253:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, 64 - bufsize); data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.cpp:267:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, end - data); data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.cpp:273:36: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CRIPEMD160::Finalize(unsigned char hash[OUTPUT_SIZE]) data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.cpp:275:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pad[64] = {0x80}; data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.cpp:276:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char sizedesc[8]; data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.h:16:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[64]; data/bitcoin-0.18.1~dfsg/src/crypto/ripemd160.h:24:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]); data/bitcoin-0.18.1~dfsg/src/crypto/sha1.cpp:160:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, 64 - bufsize); data/bitcoin-0.18.1~dfsg/src/crypto/sha1.cpp:174:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, end - data); data/bitcoin-0.18.1~dfsg/src/crypto/sha1.cpp:180:31: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CSHA1::Finalize(unsigned char hash[OUTPUT_SIZE]) data/bitcoin-0.18.1~dfsg/src/crypto/sha1.cpp:182:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pad[64] = {0x80}; data/bitcoin-0.18.1~dfsg/src/crypto/sha1.cpp:183:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char sizedesc[8]; data/bitcoin-0.18.1~dfsg/src/crypto/sha1.h:16:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[64]; data/bitcoin-0.18.1~dfsg/src/crypto/sha1.h:24:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]); data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:424:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char padding1[64] = { data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:430:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buffer2[64] = { data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:471:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char data[641] = "-" // Intentionally not aligned data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:493:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char result_d64[256] = { data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:522:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out[32]; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:528:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out[64]; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:535:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out[128]; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:542:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out[256]; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:654:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, 64 - bufsize); data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:668:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, end - data); data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:674:33: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CSHA256::Finalize(unsigned char hash[OUTPUT_SIZE]) data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:676:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pad[64] = {0x80}; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:677:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char sizedesc[8]; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.h:17:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[64]; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.h:25:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]); data/bitcoin-0.18.1~dfsg/src/crypto/sha512.cpp:165:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, 128 - bufsize); data/bitcoin-0.18.1~dfsg/src/crypto/sha512.cpp:179:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf + bufsize, data, end - data); data/bitcoin-0.18.1~dfsg/src/crypto/sha512.cpp:185:33: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CSHA512::Finalize(unsigned char hash[OUTPUT_SIZE]) data/bitcoin-0.18.1~dfsg/src/crypto/sha512.cpp:187:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pad[128] = {0x80}; data/bitcoin-0.18.1~dfsg/src/crypto/sha512.cpp:188:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char sizedesc[16] = {0x00}; data/bitcoin-0.18.1~dfsg/src/crypto/sha512.h:16:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[128]; data/bitcoin-0.18.1~dfsg/src/crypto/sha512.h:24:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]); data/bitcoin-0.18.1~dfsg/src/dbwrapper.cpp:29:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[500]; data/bitcoin-0.18.1~dfsg/src/dbwrapper.cpp:227:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buff[OBFUSCATE_KEY_NUM_BYTES]; data/bitcoin-0.18.1~dfsg/src/fs.cpp:13:7: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *fopen(const fs::path& p, const char *mode) data/bitcoin-0.18.1~dfsg/src/fs.cpp:16:14: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). return ::fopen(p.string().c_str(), mode); data/bitcoin-0.18.1~dfsg/src/fs.cpp:31:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). fd = open(file.string().c_str(), O_RDWR); data/bitcoin-0.18.1~dfsg/src/fs.cpp:108:16: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). int size = MultiByteToWideChar(CP_ACP, 0, mb_string.c_str(), mb_string.size(), nullptr, 0); data/bitcoin-0.18.1~dfsg/src/fs.cpp:111:5: [2] (buffer) MultiByteToWideChar: Requires maximum length in CHARACTERS, not bytes (CWE-120). MultiByteToWideChar(CP_ACP, 0, mb_string.c_str(), mb_string.size(), &*utf16_string.begin(), size); data/bitcoin-0.18.1~dfsg/src/fs.cpp:160:16: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void ifstream::open(const fs::path& p, std::ios_base::openmode mode) data/bitcoin-0.18.1~dfsg/src/fs.cpp:164:24: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). m_file = fsbridge::fopen(p, openmodeToStr(mode).c_str()); data/bitcoin-0.18.1~dfsg/src/fs.cpp:184:16: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void ofstream::open(const fs::path& p, std::ios_base::openmode mode) data/bitcoin-0.18.1~dfsg/src/fs.cpp:188:24: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). m_file = fsbridge::fopen(p, openmodeToStr(mode).c_str()); data/bitcoin-0.18.1~dfsg/src/fs.h:22:11: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *fopen(const fs::path& p, const char *mode); data/bitcoin-0.18.1~dfsg/src/fs.h:65:98: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). explicit ifstream(const fs::path& p, std::ios_base::openmode mode = std::ios_base::in) { open(p, mode); } data/bitcoin-0.18.1~dfsg/src/fs.h:67:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open(const fs::path& p, std::ios_base::openmode mode = std::ios_base::in); data/bitcoin-0.18.1~dfsg/src/fs.h:79:99: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). explicit ofstream(const fs::path& p, std::ios_base::openmode mode = std::ios_base::out) { open(p, mode); } data/bitcoin-0.18.1~dfsg/src/fs.h:81:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open(const fs::path& p, std::ios_base::openmode mode = std::ios_base::out); data/bitcoin-0.18.1~dfsg/src/hash.cpp:71:74: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]) data/bitcoin-0.18.1~dfsg/src/hash.cpp:71:102: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]) data/bitcoin-0.18.1~dfsg/src/hash.cpp:71:126: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]) data/bitcoin-0.18.1~dfsg/src/hash.cpp:73:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char num[4]; data/bitcoin-0.18.1~dfsg/src/hash.h:28:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]) { data/bitcoin-0.18.1~dfsg/src/hash.h:29:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[CSHA256::OUTPUT_SIZE]; data/bitcoin-0.18.1~dfsg/src/hash.h:52:28: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Finalize(unsigned char hash[OUTPUT_SIZE]) { data/bitcoin-0.18.1~dfsg/src/hash.h:53:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[CSHA256::OUTPUT_SIZE]; data/bitcoin-0.18.1~dfsg/src/hash.h:73:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pblank[1] = {}; data/bitcoin-0.18.1~dfsg/src/hash.h:84:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pblank[1] = {}; data/bitcoin-0.18.1~dfsg/src/hash.h:96:21: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static unsigned char pblank[1] = {}; data/bitcoin-0.18.1~dfsg/src/hash.h:146:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char result[CHash256::OUTPUT_SIZE]; data/bitcoin-0.18.1~dfsg/src/hash.h:177:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data[1024]; data/bitcoin-0.18.1~dfsg/src/hash.h:205:74: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]); data/bitcoin-0.18.1~dfsg/src/hash.h:205:102: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]); data/bitcoin-0.18.1~dfsg/src/hash.h:205:126: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void BIP32Hash(const ChainCode &chainCode, unsigned int nChild, unsigned char header, const unsigned char data[32], unsigned char output[64]); data/bitcoin-0.18.1~dfsg/src/httprpc.cpp:115:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out[KEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/init.cpp:245:41: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). CAutoFile est_fileout(fsbridge::fopen(est_path, "wb"), SER_DISK, CLIENT_VERSION); data/bitcoin-0.18.1~dfsg/src/init.cpp:649:13: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). if (atoi(item.first) == nContigCounter) { data/bitcoin-0.18.1~dfsg/src/init.cpp:690:32: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *file = fsbridge::fopen(pathBootstrap, "rb"); data/bitcoin-0.18.1~dfsg/src/init.cpp:703:32: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *file = fsbridge::fopen(path, "rb"); data/bitcoin-0.18.1~dfsg/src/init.cpp:1635:36: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). CAutoFile est_filein(fsbridge::fopen(est_path, "rb"), SER_DISK, CLIENT_VERSION); data/bitcoin-0.18.1~dfsg/src/key.cpp:74:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(out32 + (32 - oslen), privkey, oslen); data/bitcoin-0.18.1~dfsg/src/key.cpp:116:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, begin, sizeof(begin)); ptr += sizeof(begin); data/bitcoin-0.18.1~dfsg/src/key.cpp:117:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, key32, 32); ptr += 32; data/bitcoin-0.18.1~dfsg/src/key.cpp:118:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, middle, sizeof(middle)); ptr += sizeof(middle); data/bitcoin-0.18.1~dfsg/src/key.cpp:142:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, begin, sizeof(begin)); ptr += sizeof(begin); data/bitcoin-0.18.1~dfsg/src/key.cpp:143:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, key32, 32); ptr += 32; data/bitcoin-0.18.1~dfsg/src/key.cpp:144:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ptr, middle, sizeof(middle)); ptr += sizeof(middle); data/bitcoin-0.18.1~dfsg/src/key.cpp:195:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char compact_sig[64]; data/bitcoin-0.18.1~dfsg/src/key.cpp:210:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char extra_entropy[32] = {0}; data/bitcoin-0.18.1~dfsg/src/key.cpp:231:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char rnd[8]; data/bitcoin-0.18.1~dfsg/src/key.cpp:280:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ccChild.begin(), vout.data()+32, 32); data/bitcoin-0.18.1~dfsg/src/key.cpp:281:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy((unsigned char*)keyChild.begin(), begin(), 32); data/bitcoin-0.18.1~dfsg/src/key.cpp:291:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&out.vchFingerprint[0], &id, 4); data/bitcoin-0.18.1~dfsg/src/key.cpp:301:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(chaincode.begin(), vout.data() + 32, 32); data/bitcoin-0.18.1~dfsg/src/key.cpp:310:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&ret.vchFingerprint[0], &vchFingerprint[0], 4); data/bitcoin-0.18.1~dfsg/src/key.cpp:317:31: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CExtKey::Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const { data/bitcoin-0.18.1~dfsg/src/key.cpp:319:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(code+1, vchFingerprint, 4); data/bitcoin-0.18.1~dfsg/src/key.cpp:322:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(code+9, chaincode.begin(), 32); data/bitcoin-0.18.1~dfsg/src/key.cpp:325:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(code+42, key.begin(), 32); data/bitcoin-0.18.1~dfsg/src/key.cpp:328:37: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CExtKey::Decode(const unsigned char code[BIP32_EXTKEY_SIZE]) { data/bitcoin-0.18.1~dfsg/src/key.cpp:330:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vchFingerprint, code+1, 4); data/bitcoin-0.18.1~dfsg/src/key.cpp:332:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(chaincode.begin(), code+9, 32); data/bitcoin-0.18.1~dfsg/src/key.h:79:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(keydata.data(), (unsigned char*)&pbegin[0], keydata.size()); data/bitcoin-0.18.1~dfsg/src/key.h:143:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char vchFingerprint[4]; data/bitcoin-0.18.1~dfsg/src/key.h:157:26: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const; data/bitcoin-0.18.1~dfsg/src/key.h:158:32: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Decode(const unsigned char code[BIP32_EXTKEY_SIZE]); data/bitcoin-0.18.1~dfsg/src/key.h:167:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char code[BIP32_EXTKEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/key.h:175:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char code[BIP32_EXTKEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/logging.cpp:46:27: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). m_fileout = fsbridge::fopen(m_file_path, "a"); data/bitcoin-0.18.1~dfsg/src/logging.cpp:228:47: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* new_fileout = fsbridge::fopen(m_file_path, "a"); data/bitcoin-0.18.1~dfsg/src/logging.cpp:248:28: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* file = fsbridge::fopen(m_file_path, "r"); data/bitcoin-0.18.1~dfsg/src/logging.cpp:270:26: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). file = fsbridge::fopen(m_file_path, "w"); data/bitcoin-0.18.1~dfsg/src/net.cpp:641:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&hdrbuf[nHdrPos], pch, nCopy); data/bitcoin-0.18.1~dfsg/src/net.cpp:677:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&vRecv[nDataPos], pch, nCopy); data/bitcoin-0.18.1~dfsg/src/net.cpp:1300:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pchBuf[0x10000]; data/bitcoin-0.18.1~dfsg/src/net.cpp:1406:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char lanaddr[64]; data/bitcoin-0.18.1~dfsg/src/net.cpp:1429:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char externalIPAddress[40]; data/bitcoin-0.18.1~dfsg/src/net.cpp:2077:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pszHostName[256] = ""; data/bitcoin-0.18.1~dfsg/src/net.cpp:2702:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(hdr.pchChecksum, hash.begin(), CMessageHeader::CHECKSUM_SIZE); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:11:23: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pchIPv4[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff }; data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:32:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip, pchIPv4, 12); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:33:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip+12, ip_in, 4); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:36:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip, ip_in, 16); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:48:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char hash[32] = {}; data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:50:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip, g_internal_prefix, sizeof(g_internal_prefix)); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:51:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip + sizeof(g_internal_prefix), hash, sizeof(ip) - sizeof(g_internal_prefix)); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:61:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ip, pchOnionCat, sizeof(pchOnionCat)); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:190:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char pchLocal[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}; data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:209:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char ipNone6[16] = {}; data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:273:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char name[1025] = ""; data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:306:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pipv4Addr, ip+12, 4); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:315:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pipv6Addr, ip, 16); data/bitcoin-0.18.1~dfsg/src/netaddress.cpp:563:6: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vKey.data(), ip, 16); data/bitcoin-0.18.1~dfsg/src/netaddress.h:35:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char ip[16]; // in network byte order data/bitcoin-0.18.1~dfsg/src/netbase.cpp:669:5: [2] (buffer) wchar_t: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. wchar_t buf[256]; data/bitcoin-0.18.1~dfsg/src/netbase.cpp:685:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[256]; data/bitcoin-0.18.1~dfsg/src/prevector.h:152:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char direct[sizeof(T) * N]; data/bitcoin-0.18.1~dfsg/src/prevector.h:171:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, src, size() * sizeof(T)); data/bitcoin-0.18.1~dfsg/src/prevector.h:188:17: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, src, size() * sizeof(T)); data/bitcoin-0.18.1~dfsg/src/protocol.cpp:81:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pchMessageStart, pchMessageStartIn, MESSAGE_START_SIZE); data/bitcoin-0.18.1~dfsg/src/protocol.cpp:89:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pchMessageStart, pchMessageStartIn, MESSAGE_START_SIZE); data/bitcoin-0.18.1~dfsg/src/protocol.h:38:22: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. typedef unsigned char MessageStartChars[MESSAGE_START_SIZE]; data/bitcoin-0.18.1~dfsg/src/protocol.h:57:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pchMessageStart[MESSAGE_START_SIZE]; data/bitcoin-0.18.1~dfsg/src/protocol.h:58:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pchCommand[COMMAND_SIZE]; data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:31:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char tmpsig[64] = {0}; data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:142:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(tmpsig + 32 - rlen, input + rpos, rlen); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:154:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(tmpsig + 64 - slen, input + spos, slen); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:199:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char pub[PUBLIC_KEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:220:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char pub[PUBLIC_KEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:231:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out[64]; data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:233:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ccChild.begin(), out+32, 32); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:241:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char pub[COMPRESSED_PUBLIC_KEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:248:34: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CExtPubKey::Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const { data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:250:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(code+1, vchFingerprint, 4); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:253:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(code+9, chaincode.begin(), 32); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:255:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(code+41, pubkey.begin(), CPubKey::COMPRESSED_PUBLIC_KEY_SIZE); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:258:40: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void CExtPubKey::Decode(const unsigned char code[BIP32_EXTKEY_SIZE]) { data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:260:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vchFingerprint, code+1, 4); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:262:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(chaincode.begin(), code+9, 32); data/bitcoin-0.18.1~dfsg/src/pubkey.cpp:269:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&out.vchFingerprint[0], &id, 4); data/bitcoin-0.18.1~dfsg/src/pubkey.h:54:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char vch[PUBLIC_KEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/pubkey.h:90:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vch, (unsigned char*)&pbegin[0], len); data/bitcoin-0.18.1~dfsg/src/pubkey.h:208:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char vchFingerprint[4]; data/bitcoin-0.18.1~dfsg/src/pubkey.h:222:26: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const; data/bitcoin-0.18.1~dfsg/src/pubkey.h:223:32: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. void Decode(const unsigned char code[BIP32_EXTKEY_SIZE]); data/bitcoin-0.18.1~dfsg/src/pubkey.h:236:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char code[BIP32_EXTKEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/pubkey.h:244:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char code[BIP32_EXTKEY_SIZE]; data/bitcoin-0.18.1~dfsg/src/qt/csvmodelwriter.cpp:52:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if(!file.open(QIODevice::WriteOnly | QIODevice::Text)) data/bitcoin-0.18.1~dfsg/src/qt/guiutil.cpp:663:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pszExePath[MAX_PATH+1]; data/bitcoin-0.18.1~dfsg/src/qt/paymentserver.cpp:534:12: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). if (!f.open(QIODevice::ReadOnly)) { data/bitcoin-0.18.1~dfsg/src/qt/rpcconsole.cpp:232:61: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). subelement = lastResult[atoi(curarg.c_str())]; data/bitcoin-0.18.1~dfsg/src/qt/test/paymentservertests.cpp:47:7: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). f.open(); data/bitcoin-0.18.1~dfsg/src/qt/test/paymentservertests.cpp:188:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). tempFile.open(); data/bitcoin-0.18.1~dfsg/src/qt/walletcontroller.cpp:157:26: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void OpenWalletActivity::open() data/bitcoin-0.18.1~dfsg/src/qt/walletcontroller.h:78:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open(); data/bitcoin-0.18.1~dfsg/src/random.cpp:284:13: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int f = open("/dev/urandom", O_RDONLY); data/bitcoin-0.18.1~dfsg/src/random.cpp:387:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char m_state[32] GUARDED_BY(m_mutex) = {0}; data/bitcoin-0.18.1~dfsg/src/random.cpp:424:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[64]; data/bitcoin-0.18.1~dfsg/src/random.cpp:438:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(m_state, buf + 32, 32); data/bitcoin-0.18.1~dfsg/src/random.cpp:443:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(out, buf, num); data/bitcoin-0.18.1~dfsg/src/random.cpp:497:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buffer[32]; data/bitcoin-0.18.1~dfsg/src/random.cpp:512:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buffer[32]; data/bitcoin-0.18.1~dfsg/src/random.cpp:602:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[64]; data/bitcoin-0.18.1~dfsg/src/random.cpp:645:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(ret.begin(), bytebuf + 64 - bytebuf_size, 32); data/bitcoin-0.18.1~dfsg/src/random.h:101:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char bytebuf[64]; data/bitcoin-0.18.1~dfsg/src/rpc/protocol.cpp:79:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char rand_pwd[COOKIE_SIZE]; data/bitcoin-0.18.1~dfsg/src/rpc/protocol.cpp:88:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). file.open(filepath_tmp); data/bitcoin-0.18.1~dfsg/src/rpc/protocol.cpp:113:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). file.open(filepath); data/bitcoin-0.18.1~dfsg/src/script/bitcoinconsensus.cpp:37:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pch, m_data, nSize); data/bitcoin-0.18.1~dfsg/src/script/sigcache.h:38:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&u, key.begin()+4*hash_select, 4); data/bitcoin-0.18.1~dfsg/src/script/sign.h:25:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char fingerprint[4]; //!< First 32 bits of the Hash160 of the public key at the root of the path data/bitcoin-0.18.1~dfsg/src/script/standard.h:96:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char program[40]; data/bitcoin-0.18.1~dfsg/src/serialize.h:375:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char tmp[(sizeof(n)*8+6)/7]; data/bitcoin-0.18.1~dfsg/src/streams.h:101:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vchData.data() + nPos, reinterpret_cast<const unsigned char*>(pch), nOverwrite); data/bitcoin-0.18.1~dfsg/src/streams.h:193:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(dst, m_data.data() + m_pos, n); data/bitcoin-0.18.1~dfsg/src/streams.h:314:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&vch[nReadPos], &first[0], last - first); data/bitcoin-0.18.1~dfsg/src/streams.h:328:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&vch[nReadPos], &first[0], last - first); data/bitcoin-0.18.1~dfsg/src/streams.h:408:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pch, &vch[nReadPos], nSize); data/bitcoin-0.18.1~dfsg/src/streams.h:668:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char data[4096]; data/bitcoin-0.18.1~dfsg/src/streams.h:791:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(pch, &vchBuf[pos], nNow); data/bitcoin-0.18.1~dfsg/src/test/arith_uint256_tests.cpp:157:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char TmpArray[32]; data/bitcoin-0.18.1~dfsg/src/test/arith_uint256_tests.cpp:203:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char TmpArray[32]; data/bitcoin-0.18.1~dfsg/src/test/arith_uint256_tests.cpp:225:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char TmpArray[32]; data/bitcoin-0.18.1~dfsg/src/test/arith_uint256_tests.cpp:551:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char TmpArray[32]; data/bitcoin-0.18.1~dfsg/src/test/bip32_tests.cpp:97:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char data[74]; data/bitcoin-0.18.1~dfsg/src/test/bloom_tests.cpp:155:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(data.data(), prevOutPoint.hash.begin(), 32); data/bitcoin-0.18.1~dfsg/src/test/bloom_tests.cpp:156:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(data.data()+32, &prevOutPoint.n, sizeof(unsigned int)); data/bitcoin-0.18.1~dfsg/src/test/compilerbug_tests.cpp:26:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[1]; data/bitcoin-0.18.1~dfsg/src/test/compilerbug_tests.cpp:33:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char in[4]; data/bitcoin-0.18.1~dfsg/src/test/crypto_tests.cpp:552:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char in[64 * 32]; data/bitcoin-0.18.1~dfsg/src/test/crypto_tests.cpp:553:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char out1[32 * 32], out2[32 * 32]; data/bitcoin-0.18.1~dfsg/src/test/dbwrapper_tests.cpp:278:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buf[10]; data/bitcoin-0.18.1~dfsg/src/test/hash_tests.cpp:85:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char t0[1] = {0}; data/bitcoin-0.18.1~dfsg/src/test/hash_tests.cpp:88:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char t1[7] = {1,2,3,4,5,6,7}; data/bitcoin-0.18.1~dfsg/src/test/hash_tests.cpp:93:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char t2[2] = {16,17}; data/bitcoin-0.18.1~dfsg/src/test/hash_tests.cpp:96:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char t3[9] = {18,19,20,21,22,23,24,25,26}; data/bitcoin-0.18.1~dfsg/src/test/hash_tests.cpp:99:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char t4[5] = {27,28,29,30,31}; data/bitcoin-0.18.1~dfsg/src/test/net_tests.cpp:115:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char pchMsgTmp[4]; data/bitcoin-0.18.1~dfsg/src/test/net_tests.cpp:148:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char pchMsgTmp[4]; data/bitcoin-0.18.1~dfsg/src/test/net_tests.cpp:272:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&(sa.sin_addr), &ip, sizeof(ip)); data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp:205:27: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char order[33] = { data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp:240:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const unsigned char vchKey0[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}; data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp:241:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const unsigned char vchKey1[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0}; data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp:242:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const unsigned char vchKey2[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0}; data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp:957:18: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* file = fopen("script_tests.json.gen", "w"); data/bitcoin-0.18.1~dfsg/src/test/serialize_tests.cpp:22:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char charstrval[16]; data/bitcoin-0.18.1~dfsg/src/test/serialize_tests.cpp:351:11: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const char charstrval[16] = "testing charstr"; data/bitcoin-0.18.1~dfsg/src/test/util_tests.cpp:46:23: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const unsigned char ParseHex_expected[65] = { data/bitcoin-0.18.1~dfsg/src/tinyformat.h:183:23: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. struct fail { char dummy[2]; }; data/bitcoin-0.18.1~dfsg/src/torcontrol.cpp:148:30: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). self->message.code = atoi(s.substr(0,3)); data/bitcoin-0.18.1~dfsg/src/torcontrol.cpp:367:25: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *f = fsbridge::fopen(filename, "rb"); data/bitcoin-0.18.1~dfsg/src/torcontrol.cpp:371:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[128]; data/bitcoin-0.18.1~dfsg/src/torcontrol.cpp:393:25: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *f = fsbridge::fopen(filename, "wb"); data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp:37:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. const signed char p_util_hexdigit[256] = data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp:425:5: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int atoi(const std::string& str) data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp:427:12: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). return atoi(str.c_str()); data/bitcoin-0.18.1~dfsg/src/util/strencodings.h:61:5: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). int atoi(const std::string& str); data/bitcoin-0.18.1~dfsg/src/util/strencodings.h:127:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char hexmap[16] = { '0', '1', '2', '3', '4', '5', '6', '7', data/bitcoin-0.18.1~dfsg/src/util/system.cpp:100:28: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* file = fsbridge::fopen(pathLockFile, "a"); data/bitcoin-0.18.1~dfsg/src/util/system.cpp:129:28: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* file = fsbridge::fopen(tmpFile, "a"); data/bitcoin-0.18.1~dfsg/src/util/system.cpp:159:13: [2] (integer) atoi: Unless checked, the resulting number can exceed the expected range (CWE-190). If source untrusted, check both minimum and maximum, even if the input had no minus sign (large numbers can roll over into negative number; consider saving to an unsigned value if that is intended). return (atoi(strValue) != 0); data/bitcoin-0.18.1~dfsg/src/util/system.cpp:661:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char pszModule[MAX_PATH] = ""; data/bitcoin-0.18.1~dfsg/src/util/system.cpp:1095:18: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static const char buf[65536] = {}; data/bitcoin-0.18.1~dfsg/src/validation.cpp:3217:13: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&out.scriptPubKey[6], witnessroot.begin(), 32); data/bitcoin-0.18.1~dfsg/src/validation.cpp:3806:28: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* file = fsbridge::fopen(path, fReadOnly ? "rb": "rb+"); data/bitcoin-0.18.1~dfsg/src/validation.cpp:3808:26: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). file = fsbridge::fopen(path, "wb+"); data/bitcoin-0.18.1~dfsg/src/validation.cpp:4449:26: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[CMessageHeader::MESSAGE_START_SIZE]; data/bitcoin-0.18.1~dfsg/src/validation.cpp:4771:31: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* filestr = fsbridge::fopen(GetDataDir() / "mempool.dat", "rb"); data/bitcoin-0.18.1~dfsg/src/validation.cpp:4865:35: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE* filestr = fsbridge::fopen(GetDataDir() / "mempool.dat.new", "wb"); data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:26:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char buf[CSHA512::OUTPUT_SIZE]; data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:36:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(key, buf, WALLET_CRYPTO_KEY_SIZE); data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:37:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(iv, buf + WALLET_CRYPTO_KEY_SIZE, WALLET_CRYPTO_IV_SIZE); data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:67:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vchKey.data(), chNewKey.data(), chNewKey.size()); data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:68:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(vchIV.data(), chNewIV.data(), chNewIV.size()); data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:115:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(chIV.data(), &nIV, WALLET_CRYPTO_IV_SIZE); data/bitcoin-0.18.1~dfsg/src/wallet/crypter.cpp:125:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(chIV.data(), &nIV, WALLET_CRYPTO_IV_SIZE); data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:191:34: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). dbenv->set_errfile(fsbridge::fopen(pathErrorFile, "a")); /// debug data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:195:22: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int ret = dbenv->open(strPath.c_str(), data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:252:22: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int ret = dbenv->open(nullptr, data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:359:24: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int ret = pdbCopy->open(nullptr, // Txn pointer data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:554:29: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). ret = pdb_temp->open(nullptr, // Txn pointer data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:700:40: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). int ret = pdbCopy->open(nullptr, // Txn pointer data/bitcoin-0.18.1~dfsg/src/wallet/rpcdump.cpp:590:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). file.open(request.params[0].get_str(), std::ios::in | std::ios::ate); data/bitcoin-0.18.1~dfsg/src/wallet/rpcdump.cpp:802:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). file.open(filepath); data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.cpp:39:9: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(buf, data, size); data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.cpp:148:14: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. unsigned char msgseq[sizeof(uint32_t)]; data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.cpp:164:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data[32]; data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.cpp:174:5: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data[32]; data/bitcoin-0.18.1~dfsg/build_msvc/testconsensus/testconsensus.cpp:47:5: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). getchar(); data/bitcoin-0.18.1~dfsg/src/base58.cpp:48:16: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int size = strlen(psz) * 733 /1000 + 1; // log(58) / log(256), rounded up. data/bitcoin-0.18.1~dfsg/src/bitcoin-cli.cpp:394:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (!valReply.read(response.body)) data/bitcoin-0.18.1~dfsg/src/bitcoin-tx.cpp:120:14: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (!val.read(rawJson)) { data/bitcoin-0.18.1~dfsg/src/chainparams.cpp:26:173: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). txNew.vin[0].scriptSig = CScript() << 486604799 << CScriptNum(4) << std::vector<unsigned char>((const unsigned char*)pszTimestamp, (const unsigned char*)pszTimestamp + strlen(pszTimestamp)); data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:518:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(state, state + 8, result[i])) return false; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:524:15: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(out, out + 32, result_d64)) return false; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:530:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(out, out + 64, result_d64)) return false; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:537:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(out, out + 128, result_d64)) return false; data/bitcoin-0.18.1~dfsg/src/crypto/sha256.cpp:544:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(out, out + 256, result_d64)) return false; data/bitcoin-0.18.1~dfsg/src/hash.h:169:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char* pch, size_t nSize) data/bitcoin-0.18.1~dfsg/src/hash.h:171:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). source->read(pch, nSize); data/bitcoin-0.18.1~dfsg/src/hash.h:180:13: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). read(data, now); data/bitcoin-0.18.1~dfsg/src/httprpc.cpp:181:25: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (!valRequest.read(req->ReadBody())) data/bitcoin-0.18.1~dfsg/src/init.cpp:924:9: [1] (access) umask: Ensure that umask is given most restrictive possible setting (e.g., 066 or 077) (CWE-732). umask(077); data/bitcoin-0.18.1~dfsg/src/key.h:178:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char *)&code[0], len); data/bitcoin-0.18.1~dfsg/src/key_io.cpp:82:71: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (data.size() == hash.size() + pubkey_prefix.size() && std::equal(pubkey_prefix.begin(), pubkey_prefix.end(), data.begin())) { data/bitcoin-0.18.1~dfsg/src/key_io.cpp:89:71: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (data.size() == hash.size() + script_prefix.size() && std::equal(script_prefix.begin(), script_prefix.end(), data.begin())) { data/bitcoin-0.18.1~dfsg/src/key_io.cpp:140:18: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. std::equal(privkey_prefix.begin(), privkey_prefix.end(), data.begin())) { data/bitcoin-0.18.1~dfsg/src/key_io.cpp:170:70: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (data.size() == BIP32_EXTKEY_SIZE + prefix.size() && std::equal(prefix.begin(), prefix.end(), data.begin())) { data/bitcoin-0.18.1~dfsg/src/key_io.cpp:193:70: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (data.size() == BIP32_EXTKEY_SIZE + prefix.size() && std::equal(prefix.begin(), prefix.end(), data.begin())) { data/bitcoin-0.18.1~dfsg/src/protocol.cpp:91:5: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy(pchCommand, pszCommand, COMMAND_SIZE); data/bitcoin-0.18.1~dfsg/src/psbt.h:444:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(magic, magic + 5, PSBT_MAGIC_BYTES)) { data/bitcoin-0.18.1~dfsg/src/pubkey.h:144:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)vch, len); data/bitcoin-0.18.1~dfsg/src/pubkey.h:149:19: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read(&dummy, 1); data/bitcoin-0.18.1~dfsg/src/pubkey.h:247:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char *)&code[0], len); data/bitcoin-0.18.1~dfsg/src/qt/test/apptests.cpp:49:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). value.read(output.right(output.size() - output.lastIndexOf(QChar::ObjectReplacementCharacter) - 1).toStdString()); data/bitcoin-0.18.1~dfsg/src/random.cpp:290:21: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ssize_t n = read(f, ent32 + have, NUM_OS_RANDOM_BYTES - have); data/bitcoin-0.18.1~dfsg/src/rest.cpp:97:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (strlen(rf_names[i].name) > 0) { data/bitcoin-0.18.1~dfsg/src/rpc/client.cpp:208:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (!jVal.read(std::string("[")+strVal+std::string("]")) || data/bitcoin-0.18.1~dfsg/src/script/bitcoinconsensus.cpp:26:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char* pch, size_t nSize) data/bitcoin-0.18.1~dfsg/src/script/descriptor.cpp:602:49: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if ((size_t)sp.size() >= str.size() && std::equal(str.begin(), str.end(), sp.begin())) { data/bitcoin-0.18.1~dfsg/src/script/descriptor.cpp:612:106: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if ((size_t)sp.size() >= str.size() + 2 && sp[str.size()] == '(' && sp[sp.size() - 1] == ')' && std::equal(str.begin(), str.end(), sp.begin())) { data/bitcoin-0.18.1~dfsg/src/script/descriptor.cpp:893:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (!std::equal(checksum.begin(), checksum.end(), check_split[1].begin())) return nullptr; // Checksum mismatch data/bitcoin-0.18.1~dfsg/src/script/interpreter.cpp:264:66: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. while (static_cast<size_t>(end - pc) >= b.size() && std::equal(b.begin(), b.end(), pc)) data/bitcoin-0.18.1~dfsg/src/script/sign.h:30:21: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return std::equal(std::begin(a.fingerprint), std::end(a.fingerprint), std::begin(b.fingerprint)) && a.path == b.path; data/bitcoin-0.18.1~dfsg/src/script/standard.h:101:21: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return std::equal(w1.program, w1.program + w1.length, w2.program); data/bitcoin-0.18.1~dfsg/src/serialize.h:100:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)&obj, 1); data/bitcoin-0.18.1~dfsg/src/serialize.h:106:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)&obj, 2); data/bitcoin-0.18.1~dfsg/src/serialize.h:112:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)&obj, 2); data/bitcoin-0.18.1~dfsg/src/serialize.h:118:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)&obj, 4); data/bitcoin-0.18.1~dfsg/src/serialize.h:124:7: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)&obj, 8); data/bitcoin-0.18.1~dfsg/src/serialize.h:223:87: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). template<typename Stream, int N> inline void Unserialize(Stream& s, char (&a)[N]) { s.read(a, N); } data/bitcoin-0.18.1~dfsg/src/serialize.h:224:96: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). template<typename Stream, int N> inline void Unserialize(Stream& s, unsigned char (&a)[N]) { s.read(CharCast(a), N); } data/bitcoin-0.18.1~dfsg/src/serialize.h:225:93: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). template<typename Stream> inline void Unserialize(Stream& s, Span<unsigned char>& span) { s.read(CharCast(span.data()), span.size()); } data/bitcoin-0.18.1~dfsg/src/serialize.h:503:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)string.data(), size); data/bitcoin-0.18.1~dfsg/src/serialize.h:621:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read((char*)str.data(), nSize * sizeof(C)); data/bitcoin-0.18.1~dfsg/src/serialize.h:663:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read((char*)&v[i], blk * sizeof(T)); data/bitcoin-0.18.1~dfsg/src/serialize.h:731:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). is.read((char*)&v[i], blk * sizeof(T)); data/bitcoin-0.18.1~dfsg/src/span.h:38:115: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. friend constexpr bool operator==(const Span& a, const Span& b) noexcept { return a.size() == b.size() && std::equal(a.begin(), a.end(), b.begin()); } data/bitcoin-0.18.1~dfsg/src/streams.h:57:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char* pch, size_t nSize) data/bitcoin-0.18.1~dfsg/src/streams.h:59:17: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). stream->read(pch, nSize); data/bitcoin-0.18.1~dfsg/src/streams.h:182:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char* dst, size_t n) data/bitcoin-0.18.1~dfsg/src/streams.h:399:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char* pch, size_t nSize) data/bitcoin-0.18.1~dfsg/src/streams.h:656:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char* pch, size_t nSize) data/bitcoin-0.18.1~dfsg/src/streams.h:777:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). void read(char *pch, size_t nSize) { data/bitcoin-0.18.1~dfsg/src/sync.cpp:84:72: [1] (buffer) mismatch: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. static void potential_deadlock_detected(const std::pair<void*, void*>& mismatch, const LockStack& s1, const LockStack& s2) data/bitcoin-0.18.1~dfsg/src/sync.cpp:89:24: [1] (buffer) mismatch: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (i.first == mismatch.first) { data/bitcoin-0.18.1~dfsg/src/sync.cpp:92:24: [1] (buffer) mismatch: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (i.first == mismatch.second) { data/bitcoin-0.18.1~dfsg/src/sync.cpp:99:24: [1] (buffer) mismatch: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (i.first == mismatch.first) { data/bitcoin-0.18.1~dfsg/src/sync.cpp:102:24: [1] (buffer) mismatch: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. if (i.first == mismatch.second) { data/bitcoin-0.18.1~dfsg/src/test/base58_tests.cpp:57:70: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. BOOST_CHECK_MESSAGE(result.size() == expected.size() && std::equal(result.begin(), result.end(), expected.begin()), strTest); data/bitcoin-0.18.1~dfsg/src/test/blockfilter_tests.cpp:122:15: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (!json.read(json_data) || !json.isArray()) { data/bitcoin-0.18.1~dfsg/src/test/fuzz/fuzz.cpp:17:22: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). while ((length = read(STDIN_FILENO, buffer, 1024)) > 0) { data/bitcoin-0.18.1~dfsg/src/test/key_io_tests.cpp:49:78: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin()), "key mismatch:" + strTest); data/bitcoin-0.18.1~dfsg/src/test/script_tests.cpp:44:12: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). if (!v.read(jsondata) || !v.isArray()) data/bitcoin-0.18.1~dfsg/src/test/util_tests.cpp:1092:18: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int rv = read(fd, &ch, 1); // Wait for command data/bitcoin-0.18.1~dfsg/src/test/util_tests.cpp:1161:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). BOOST_CHECK_EQUAL(read(fd[1], &ch, 1), 1); data/bitcoin-0.18.1~dfsg/src/test/util_tests.cpp:1171:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). BOOST_CHECK_EQUAL(read(fd[1], &ch, 1), 1); data/bitcoin-0.18.1~dfsg/src/test/util_tests.cpp:1179:23: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). BOOST_CHECK_EQUAL(read(fd[1], &ch, 1), 1); data/bitcoin-0.18.1~dfsg/src/uint256.h:102:11: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). s.read((char*)data, sizeof(data)); data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp:165:17: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). val.reserve(strlen(p)); data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp:234:17: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). val.reserve(strlen(p)); data/bitcoin-0.18.1~dfsg/src/util/strencodings.cpp:272:23: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (str.size() != strlen(str.c_str())) // No embedded NUL characters allowed data/bitcoin-0.18.1~dfsg/src/util/system.cpp:693:31: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if (pszHome == nullptr || strlen(pszHome) == 0) data/bitcoin-0.18.1~dfsg/src/validation.cpp:1135:16: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). filein.read((char*)block.data(), blk_size); data/bitcoin-0.18.1~dfsg/src/validation.cpp:3309:19: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. !std::equal(expect.begin(), expect.end(), block.vtx[0]->vin[0].scriptSig.begin())) { data/bitcoin-0.18.1~dfsg/src/wallet/db.cpp:726:87: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncmp(ssKey.data(), pszSkip, std::min(ssKey.size(), strlen(pszSkip))) == 0) data/bitcoin-0.18.1~dfsg/src/wallet/test/coinselector_tests.cpp:90:59: [1] (buffer) mismatch: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. std::pair<CoinSet::iterator, CoinSet::iterator> ret = mismatch(a.begin(), a.end(), b.begin()); data/bitcoin-0.18.1~dfsg/src/wallet/walletutil.cpp:46:10: [1] (buffer) read: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). file.read((char*) &data, sizeof(data)); // Read 4 bytes of file to compare against magic data/bitcoin-0.18.1~dfsg/src/zmq/zmqpublishnotifier.cpp:150:51: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int rc = zmq_send_multipart(psocket, command, strlen(command), data, size, msgseq, (size_t)sizeof(uint32_t), nullptr); ANALYSIS SUMMARY: Hits = 491 Lines analyzed = 143085 in approximately 4.04 seconds (35446 lines/second) Physical Source Lines of Code (SLOC) = 104967 Hits@level = [0] 21 [1] 81 [2] 366 [3] 3 [4] 40 [5] 1 Hits@level+ = [0+] 512 [1+] 491 [2+] 410 [3+] 44 [4+] 41 [5+] 1 Hits/KSLOC@level+ = [0+] 4.87772 [1+] 4.67766 [2+] 3.90599 [3+] 0.419179 [4+] 0.390599 [5+] 0.0095268 Dot directories skipped = 4 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.