Page MenuHomePhabricator

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

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


Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Restricted Project
rABC07cc225cf5ab: Merge #13424: Consistently validate txid / blockhash length and encoding in rpc…

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

Depends on D5292

Test Plan
ninja check
ninja check-functional

Diff Detail

rABC Bitcoin ABC
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

nakihito created this revision.Feb 14 2020, 23:59
Owners added a reviewer: Restricted Owners Package.Feb 14 2020, 23:59
Herald added a reviewer: Restricted Project. · View Herald TranscriptFeb 14 2020, 23:59
teamcity edited the summary of this revision. (Show Details)Feb 15 2020, 00:00

[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.
297 ↗(On Diff #16396)

Should likely be BlockHash instead of uint256.

This revision now requires changes to proceed.Feb 17 2020, 11:53
nakihito updated this revision to Diff 16429.Feb 18 2020, 16:54

Fixed missing blockhash.

Fabien accepted this revision.Feb 18 2020, 20:20
This revision is now accepted and ready to land.Feb 18 2020, 20:20