[rpc] ParseHash: Fail when length is not 64

Github-Pull: #9042
Rebased-From: fa326193ad
This commit is contained in:
MarcoFalke 2016-10-30 16:58:13 +01:00 committed by Luke Dashjr
parent 973ca1e491
commit 5bcb05d4e1
1 changed files with 2 additions and 0 deletions

View File

@ -146,6 +146,8 @@ uint256 ParseHashV(const UniValue& v, string strName)
strHex = v.get_str(); strHex = v.get_str();
if (!IsHex(strHex)) // Note: IsHex("") is false if (!IsHex(strHex)) // Note: IsHex("") is false
throw JSONRPCError(RPC_INVALID_PARAMETER, strName+" must be hexadecimal string (not '"+strHex+"')"); throw JSONRPCError(RPC_INVALID_PARAMETER, strName+" must be hexadecimal string (not '"+strHex+"')");
if (64 != strHex.length())
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("%s must be of length %d (not %d)", strName, 64, strHex.length()));
uint256 result; uint256 result;
result.SetHex(strHex); result.SetHex(strHex);
return result; return result;