diff options
-rw-r--r-- | src/rpc/util.cpp | 8 | ||||
-rw-r--r-- | src/test/fuzz/parse_univalue.cpp | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/rpc/util.cpp b/src/rpc/util.cpp index 377181dd81..faae840d40 100644 --- a/src/rpc/util.cpp +++ b/src/rpc/util.cpp @@ -313,14 +313,16 @@ UniValue DescribeAddress(const CTxDestination& dest) return std::visit(DescribeAddressVisitor(), dest); } +/** + * Returns a sighash value corresponding to the passed in argument. + * + * @pre The sighash argument should be string or null. +*/ int ParseSighashString(const UniValue& sighash) { if (sighash.isNull()) { return SIGHASH_DEFAULT; } - if (!sighash.isStr()) { - throw JSONRPCError(RPC_INVALID_PARAMETER, "sighash needs to be null or string"); - } const auto result{SighashFromStr(sighash.get_str())}; if (!result) { throw JSONRPCError(RPC_INVALID_PARAMETER, util::ErrorString(result).original); diff --git a/src/test/fuzz/parse_univalue.cpp b/src/test/fuzz/parse_univalue.cpp index c9096d0386..a3d6ab6375 100644 --- a/src/test/fuzz/parse_univalue.cpp +++ b/src/test/fuzz/parse_univalue.cpp @@ -67,7 +67,7 @@ FUZZ_TARGET(parse_univalue, .init = initialize_parse_univalue) } catch (const std::runtime_error&) { } try { - (void)ParseSighashString(univalue); + if (univalue.isNull() || univalue.isStr()) (void)ParseSighashString(univalue); } catch (const UniValue&) { } try { |