You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bounds can be propagated when memory is untouched and variables are stored and loaded at the same positions.
contractBound{functionmask(uint256a)publicpayablereturns(uint){uint256b=a&0xff;uint256c;assembly{// store b and load into cletfree_mem :=mload(0x40)mstore(free_mem,b)c :=mload(free_mem)}// range context is lostreturnc;}}
Seems difficult to track untouched memory with operations in between that touch memory (ie: codecopy, calldatacopy, etc). Are dest, offset of those tracked?
The text was updated successfully, but these errors were encountered:
This should be possible but not on the short term roadmap. This is a pretty easy case but memory analysis is going to be a pretty big lift, so I want to have a bit more of a plan before attacking this
Bounds can be propagated when memory is untouched and variables are stored and loaded at the same positions.
Would expect
c
to share bounds withb
Seems difficult to track untouched memory with operations in between that touch memory (ie: codecopy, calldatacopy, etc). Are dest, offset of those tracked?
The text was updated successfully, but these errors were encountered: