From 344537cf04373d757522e042f29f25a0f9595404 Mon Sep 17 00:00:00 2001 From: Ryan Ofsky Date: Mon, 7 Mar 2022 13:29:46 -0500 Subject: qt: Avoid crash on startup if int specified in settings.json Fix GUI startup crash reported by Rspigler in https://github.com/bitcoin/bitcoin/issues/24457 that happens if settings.json contains an integer value for any of the configuration options which GUI settings can currently clash with (-dbcache, -par, -spendzeroconfchange, -signer, -upnp, -natpmp, -listen, -server, -proxy, -proxy, -onion, -onion, -lang, and -prune). Fix is a one-line change in ArgsManager::GetArg. Github-Pull: bitcoin/bitcoin#24498 Rebased-From: 5b1aae12ca4a99c6b09349981a4902717a6a5d3e --- src/util/system.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/util/system.cpp b/src/util/system.cpp index 65c16fcd97..f54731bf0c 100644 --- a/src/util/system.cpp +++ b/src/util/system.cpp @@ -588,7 +588,7 @@ bool ArgsManager::IsArgNegated(const std::string& strArg) const std::string ArgsManager::GetArg(const std::string& strArg, const std::string& strDefault) const { const util::SettingsValue value = GetSetting(strArg); - return value.isNull() ? strDefault : value.isFalse() ? "0" : value.isTrue() ? "1" : value.get_str(); + return value.isNull() ? strDefault : value.isFalse() ? "0" : value.isTrue() ? "1" : value.isNum() ? value.getValStr() : value.get_str(); } int64_t ArgsManager::GetArg(const std::string& strArg, int64_t nDefault) const -- cgit v1.2.3