nanana37 / eacces-modifier

Make "Permission denied" detailed.
0 stars 0 forks source link

Infinite-loop caused by use-def chain for StoreInst #6

Closed nanana37 closed 5 months ago

nanana37 commented 5 months ago

When facing %flag.addr, we need to find a StoreInst showing below, and get %flag for a original name.

store i32 %flag, ptr %flag.addr, align 4

We are using use-def chain for it, but this causes infinite-loop

https://github.com/nanana37/eacces-modifier/blob/33a8699143d26135bb19bd34fb006e60f5355793/permod/Permod.cpp#L140-L150

nanana37 commented 5 months ago

Plan A: なんとかして解決する. getOrigin()の他の部分は Instruction Class に対する InstVisitだが,この箇所だけそれとは関係ないやり方になっている.

nanana37 commented 5 months ago

Plan B: .addr の時点でゴールとし,あとで文字列操作で外す ❌ かなり無理やりだし依存が大きい

nanana37 commented 5 months ago

Plan A: なんとかして解決する. getOrigin()の他の部分は Instruction Class に対する InstVisitだが,この箇所だけそれとは関係ないやり方になっている.

AllocaInst が最初の def になっているはずなので,InstVisit のアップデートで対応可能か

%flag.addr = alloca i32, align 4
nanana37 commented 5 months ago

https://github.com/nanana37/eacces-modifier/pull/7