mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
Merge pull request #4434 from PastaPastaPasta/backport-trivial-pr21
Backport trivial pr21
This commit is contained in:
commit
6aacfff31d
@ -5,7 +5,7 @@ environment:
|
||||
- CXXFLAGS=-fcoverage-mapping -fno-omit-frame-pointer -fprofile-instr-generate -gline-tables-only -O1
|
||||
setup:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y autoconf bsdmainutils clang git libboost-all-dev libboost-program-options-dev libc++1 libc++abi1 libc++abi-dev libc++-dev libclang1 libclang-dev libdb5.3++ libevent-dev libllvm-ocaml-dev libomp5 libomp-dev libprotobuf-dev libqt5core5a libqt5dbus5 libqt5gui5 libssl-dev libtool llvm llvm-dev llvm-runtime pkg-config protobuf-compiler qttools5-dev qttools5-dev-tools software-properties-common
|
||||
- sudo apt-get install -y autoconf bsdmainutils clang git libboost-all-dev libc++1 libc++abi1 libc++abi-dev libc++-dev libclang1 libclang-dev libdb5.3++ libevent-dev libllvm-ocaml-dev libomp5 libomp-dev libqt5core5a libqt5dbus5 libqt5gui5 libtool llvm llvm-dev llvm-runtime pkg-config qttools5-dev qttools5-dev-tools software-properties-common
|
||||
- ./autogen.sh
|
||||
- CC=clang CXX=clang++ ./configure --enable-fuzz --with-sanitizers=address,fuzzer,undefined
|
||||
- make
|
||||
|
@ -410,7 +410,6 @@ if test "x$CXXFLAGS_overridden" = "xno"; then
|
||||
AX_CHECK_COMPILE_FLAG([-Wunused-parameter],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-unused-parameter"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wself-assign],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-self-assign"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wunused-local-typedef],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-unused-local-typedef"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wdeprecated-register],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-deprecated-register"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wimplicit-fallthrough],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-implicit-fallthrough"],,[[$CXXFLAG_WERROR]])
|
||||
AX_CHECK_COMPILE_FLAG([-Wdeprecated-copy],[NOWARN_CXXFLAGS="$NOWARN_CXXFLAGS -Wno-deprecated-copy"],,[[$CXXFLAG_WERROR]])
|
||||
fi
|
||||
@ -1046,18 +1045,20 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
]], [[
|
||||
getauxval(AT_HWCAP);
|
||||
]])],
|
||||
[ AC_MSG_RESULT(yes); HAVE_STRONG_GETAUXVAL=1 ],
|
||||
[ AC_MSG_RESULT(yes); HAVE_STRONG_GETAUXVAL=1; AC_DEFINE(HAVE_STRONG_GETAUXVAL, 1, [Define this symbol to build code that uses getauxval)]) ],
|
||||
[ AC_MSG_RESULT(no); HAVE_STRONG_GETAUXVAL=0 ]
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING(for weak getauxval support in the compiler)
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#ifdef __linux__
|
||||
unsigned long getauxval(unsigned long type) __attribute__((weak));
|
||||
#define AT_HWCAP 16
|
||||
#endif
|
||||
]], [[
|
||||
getauxval(AT_HWCAP);
|
||||
]])],
|
||||
[ AC_MSG_RESULT(yes); HAVE_WEAK_GETAUXVAL=1 ],
|
||||
[ AC_MSG_RESULT(yes); HAVE_WEAK_GETAUXVAL=1; AC_DEFINE(HAVE_WEAK_GETAUXVAL, 1, [Define this symbol to build code that uses getauxval (weak linking)]) ],
|
||||
[ AC_MSG_RESULT(no); HAVE_WEAK_GETAUXVAL=0 ]
|
||||
)
|
||||
|
||||
|
@ -88,13 +88,14 @@ RPC interface will be abused.
|
||||
- **Secure string handling:** The RPC interface does not guarantee any
|
||||
escaping of data beyond what's necessary to encode it as JSON,
|
||||
although it does usually provide serialized data using a hex
|
||||
representation of the bytes. If you use RPC data in your programs or
|
||||
provide its data to other programs, you must ensure any problem
|
||||
strings are properly escaped. For example, multiple websites have
|
||||
been manipulated because they displayed decoded hex strings that
|
||||
included HTML `<script>` tags. For this reason, and other
|
||||
non-security reasons, it is recommended to display all serialized data
|
||||
in hex form only.
|
||||
representation of the bytes. If you use RPC data in your programs or
|
||||
provide its data to other programs, you must ensure any problem strings
|
||||
are properly escaped. For example, the `createwallet` RPC accepts
|
||||
arguments such as `wallet_name` which is a string and could be used
|
||||
for a path traversal attack without application level checks. Multiple
|
||||
websites have been manipulated because they displayed decoded hex strings
|
||||
that included HTML `<script>` tags. For this reason, and others, it is
|
||||
recommended to display all serialized data in hex form only.
|
||||
|
||||
## RPC consistency guarantees
|
||||
|
||||
|
@ -107,15 +107,15 @@ template <typename Data>
|
||||
bool DeserializeFileDB(const fs::path& path, Data& data)
|
||||
{
|
||||
// open input file, and associate with CAutoFile
|
||||
FILE *file = fsbridge::fopen(path, "rb");
|
||||
FILE* file = fsbridge::fopen(path, "rb");
|
||||
CAutoFile filein(file, SER_DISK, CLIENT_VERSION);
|
||||
if (filein.IsNull())
|
||||
return error("%s: Failed to open file %s", __func__, path.string());
|
||||
|
||||
if (filein.IsNull()) {
|
||||
LogPrintf("Missing or invalid file %s\n", path.string());
|
||||
return false;
|
||||
}
|
||||
return DeserializeDB(filein, data);
|
||||
}
|
||||
|
||||
}
|
||||
} // namespace
|
||||
|
||||
CBanDB::CBanDB(fs::path ban_list_path) : m_ban_list_path(std::move(ban_list_path))
|
||||
{
|
||||
|
@ -27,7 +27,7 @@ BanMan::BanMan(fs::path ban_file, CClientUIInterface* client_interface, int64_t
|
||||
LogPrint(BCLog::NET, "Loaded %d banned node ips/subnets from banlist.dat %dms\n",
|
||||
m_banned.size(), GetTimeMillis() - n_start);
|
||||
} else {
|
||||
LogPrintf("Invalid or missing banlist.dat; recreating\n");
|
||||
LogPrintf("Recreating banlist.dat\n");
|
||||
SetBannedSetDirty(true); // force write
|
||||
DumpBanlist();
|
||||
}
|
||||
|
@ -2993,7 +2993,7 @@ bool CConnman::Start(CScheduler& scheduler, const Options& connOptions)
|
||||
LogPrintf("Loaded %i addresses from peers.dat %dms\n", addrman.size(), GetTimeMillis() - nStart);
|
||||
else {
|
||||
addrman.Clear(); // Addrman can be in an inconsistent state after failure, reset it
|
||||
LogPrintf("Invalid or missing peers.dat; recreating\n");
|
||||
LogPrintf("Recreating peers.dat\n");
|
||||
DumpAddresses();
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget* parent) :
|
||||
|
||||
// context menu actions
|
||||
QAction *copyURIAction = new QAction(tr("Copy URI"), this);
|
||||
QAction* copyAddressAction = new QAction(tr("Copy address"), this);
|
||||
QAction *copyLabelAction = new QAction(tr("Copy label"), this);
|
||||
QAction *copyMessageAction = new QAction(tr("Copy message"), this);
|
||||
QAction *copyAmountAction = new QAction(tr("Copy amount"), this);
|
||||
@ -45,6 +46,7 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget* parent) :
|
||||
// context menu
|
||||
contextMenu = new QMenu(this);
|
||||
contextMenu->addAction(copyURIAction);
|
||||
contextMenu->addAction(copyAddressAction);
|
||||
contextMenu->addAction(copyLabelAction);
|
||||
contextMenu->addAction(copyMessageAction);
|
||||
contextMenu->addAction(copyAmountAction);
|
||||
@ -52,6 +54,7 @@ ReceiveCoinsDialog::ReceiveCoinsDialog(QWidget* parent) :
|
||||
// context menu signals
|
||||
connect(ui->recentRequestsView, &QWidget::customContextMenuRequested, this, &ReceiveCoinsDialog::showMenu);
|
||||
connect(copyURIAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyURI);
|
||||
connect(copyAddressAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyAddress);
|
||||
connect(copyLabelAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyLabel);
|
||||
connect(copyMessageAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyMessage);
|
||||
connect(copyAmountAction, &QAction::triggered, this, &ReceiveCoinsDialog::copyAmount);
|
||||
@ -243,6 +246,19 @@ void ReceiveCoinsDialog::copyURI()
|
||||
GUIUtil::setClipboard(uri);
|
||||
}
|
||||
|
||||
// context menu action: copy address
|
||||
void ReceiveCoinsDialog::copyAddress()
|
||||
{
|
||||
const QModelIndex sel = selectedRow();
|
||||
if (!sel.isValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const RecentRequestsTableModel* const submodel = model->getRecentRequestsTableModel();
|
||||
const QString address = submodel->entry(sel.row()).recipient.address;
|
||||
GUIUtil::setClipboard(address);
|
||||
}
|
||||
|
||||
// context menu action: copy label
|
||||
void ReceiveCoinsDialog::copyLabel()
|
||||
{
|
||||
|
@ -67,6 +67,7 @@ private Q_SLOTS:
|
||||
void updateDisplayUnit();
|
||||
void showMenu(const QPoint &point);
|
||||
void copyURI();
|
||||
void copyAddress();
|
||||
void copyLabel();
|
||||
void copyMessage();
|
||||
void copyAmount();
|
||||
|
@ -155,7 +155,7 @@ transactionView(nullptr), abandonAction(nullptr), columnResizingFixer(nullptr)
|
||||
QAction *copyTxIDAction = new QAction(tr("Copy transaction ID"), this);
|
||||
QAction *copyTxHexAction = new QAction(tr("Copy raw transaction"), this);
|
||||
QAction *copyTxPlainText = new QAction(tr("Copy full transaction details"), this);
|
||||
QAction *editLabelAction = new QAction(tr("Edit label"), this);
|
||||
QAction *editLabelAction = new QAction(tr("Edit address label"), this);
|
||||
QAction *showDetailsAction = new QAction(tr("Show transaction details"), this);
|
||||
QAction *showAddressQRCodeAction = new QAction(tr("Show address QR code"), this);
|
||||
|
||||
|
@ -55,5 +55,11 @@ class GetBlockFilterTest(BitcoinTestFramework):
|
||||
genesis_hash = self.nodes[0].getblockhash(0)
|
||||
assert_raises_rpc_error(-5, "Unknown filtertype", self.nodes[0].getblockfilter, genesis_hash, "unknown")
|
||||
|
||||
# Test getblockfilter fails on node without compact block filter index
|
||||
self.restart_node(0, extra_args=["-blockfilterindex=0"])
|
||||
for filter_type in FILTER_TYPES:
|
||||
assert_raises_rpc_error(-1, "Index is not enabled for filtertype {}".format(filter_type),
|
||||
self.nodes[0].getblockfilter, genesis_hash, filter_type)
|
||||
|
||||
if __name__ == '__main__':
|
||||
GetBlockFilterTest().main()
|
||||
|
@ -5,7 +5,7 @@
|
||||
deadlock:WalletBatch
|
||||
|
||||
# Intentional deadlock in tests
|
||||
deadlock:TestPotentialDeadLockDetected
|
||||
deadlock:sync_tests::potential_deadlock_detected
|
||||
|
||||
# Wildcard for all gui tests, should be replaced with non-wildcard suppressions
|
||||
race:src/qt/test/*
|
||||
|
Loading…
Reference in New Issue
Block a user