-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[move-vm][rac] Bytecode verification #16092
base: main
Are you sure you want to change the base?
Conversation
⏱️ 38m total CI duration on this PR
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
7023bd5
to
0e8c4e6
Compare
0e8c4e6
to
a0922c9
Compare
a0922c9
to
1a0505c
Compare
aa0025b
to
94c132d
Compare
@wrwg prop test is still failing with unmatched txn execution status. |
This adds bound checking bytecode verification to access specifiers. Besides this, no further action the verifier is needed for RAC specifiers. Unit tests have been added for verification failures.
check_bounds_impl(self.view.address_identifiers(), *addr_idx)? | ||
}, | ||
AddressSpecifier::Parameter(loc_idx, fun_opt) => { | ||
let sign = self.view.signature_at(function.parameters); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on documentation:
/// The index of a parameter of the current function. If `modifier` is not given, the
/// parameter must have address type. Otherwise `modifier` must be a function which takes
/// a value (or reference) of the parameter type and delivers an address.
I am not familiar with this code, where do we check that the type at index in sign
is address iff fun_opt.is_none()
? Where do we check the function signature that it returns an address?
Description
This adds bound checking bytecode verification to access specifiers. Besides this, no further action the verifier is needed for RAC specifiers.
How Has This Been Tested?
Unit tests have been added for verification failures.
Type of Change
Which Components or Systems Does This Change Impact?