Page MenuHomePhabricator

Merge #13424: Consistently validate txid / blockhash length and encoding in rpc calls
ClosedPublic

Authored by nakihito on Feb 14 2020, 23:59.

Details

Summary

5eb20f81d9 Consistently use ParseHashV to validate hash inputs in rpc (Ben Woosley)

Pull request description:

ParseHashV validates the length and encoding of the string and throws
an informative RPC error on failure, which is as good or better than
these alternative calls.

Note I switched ParseHashV to check string length first, because
IsHex tests that the length is even, and an error like:
"must be of length 64 (not 63, for X)" is much more informative than
"must be hexadecimal string (not X)" in that case.

Split from #13420

Tree-SHA512: f0786b41c0d7793ff76e4b2bb35547873070bbf7561d510029e8edb93f59176277efcd4d183b3185532ea69fc0bbbf3dbe9e19362e8017007ae9d51266cd78ae

Backport of Core PR13424
https://github.com/bitcoin/bitcoin/pull/13424/

Depends on D5292

Test Plan
ninja check
ninja check-functional

Diff Detail

Repository
rABC Bitcoin ABC
Branch
PR13424
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 9523
Build 16958: Default Diff Build & Tests
Build 16957: arc lint + arc unit

Event Timeline

Owners added a reviewer: Restricted Owners Package.Feb 14 2020, 23:59

[Bot Message]
One or more PR numbers were detected in the summary.
Links to those Bitcoin Core PRs have been inserted into the summary for reference.

Fabien requested changes to this revision.Feb 17 2020, 11:53
Fabien added a subscriber: Fabien.
Fabien added inline comments.
src/rpc/blockchain.cpp
297 ↗(On Diff #16396)

Should likely be BlockHash instead of uint256.

This revision now requires changes to proceed.Feb 17 2020, 11:53
This revision is now accepted and ready to land.Feb 18 2020, 20:20