Skip to content

Commit

Permalink
Merge pull request #2321 from crytic/test/modifier-data-dependency
Browse files Browse the repository at this point in the history
 add regression test for #2313
  • Loading branch information
0xalpharush authored Feb 20, 2024
2 parents 9c868e7 + 052a30a commit fc244e4
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 0 deletions.
14 changes: 14 additions & 0 deletions examples/scripts/data_dependency.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,17 @@
assert is_tainted(var_tainted, contract)
print(f"{var_not_tainted} is tainted: {is_tainted(var_not_tainted, contract)}")
assert not is_tainted(var_not_tainted, contract)

print("SimpleModifier contract")
contracts = slither.get_contract_from_name("SimpleModifier")
assert len(contracts) == 1
contract = contracts[0]
dependent_state_var = contract.get_state_variable_from_name("owner")
assert dependent_state_var
baz = contract.get_modifier_from_signature("baz()")
intermediate = baz.get_local_variable_from_name("intermediate")
assert intermediate
print(
f"{intermediate} depends on msg.sender: {is_dependent(intermediate, SolidityVariableComposed('msg.sender'), baz)}"
)
assert is_dependent(intermediate, SolidityVariableComposed("msg.sender"), baz)
9 changes: 9 additions & 0 deletions examples/scripts/data_dependency.sol
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,12 @@ contract PropagateThroughReturnValue {
return (var_state);
}
}

contract SimpleModifier {
address owner;
modifier baz {
bool intermediate = msg.sender == owner;
require(intermediate);
_;
}
}
2 changes: 2 additions & 0 deletions slither/solc_parsing/declarations/modifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ def analyze_content(self) -> None:
self._rewrite_ternary_as_if_else()
self._remove_alone_endif()

if self._function.entry_point:
self._update_reachability(self._function.entry_point)
# self._analyze_read_write()
# self._analyze_calls()

Expand Down

0 comments on commit fc244e4

Please sign in to comment.