Skip to content

Commit

Permalink
consider index rvalue in operation read
Browse files Browse the repository at this point in the history
  • Loading branch information
0xalpharush committed Mar 18, 2023
1 parent efeea53 commit 5083c82
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions slither/core/cfg/node.py
Original file line number Diff line number Diff line change
Expand Up @@ -829,13 +829,16 @@ def _find_read_write_call(self) -> None: # pylint: disable=too-many-statements
if var and self._is_valid_slithir_var(var):
self._slithir_vars.add(var)

if not isinstance(ir, (Phi, Index, Member)):
if not isinstance(ir, (Phi, Member)):
self._vars_read += [v for v in ir.read if self._is_non_slithir_var(v)]
for var in ir.read:
if isinstance(var, ReferenceVariable):
self._vars_read.append(var.points_to_origin)
elif isinstance(ir, (Member, Index)):
var = ir.variable_left if isinstance(ir, Member) else ir.variable_right
origin = var.points_to_origin
if self._is_non_slithir_var(origin):
self._vars_read.append(origin)

elif isinstance(ir, Member):
var = ir.variable_left
if self._is_non_slithir_var(var):
self._vars_read.append(var)
if isinstance(var, ReferenceVariable):
Expand Down

0 comments on commit 5083c82

Please sign in to comment.