Believing in numbers and fair evaluation, I've compared RAP and LLVM-CFI. RAP is faster, LLVM-CFI is more precise. RAP is incredibly hard to use and its future is uncertain while LLVM-CFI is just a command line argument away. Details at nebelwelt.net/blog/20181226-… Comments welcome 🤗
18
28
79
- RAP doesn't blindly emit the corresponding type hash for a function either, it has to be address-taken or globally visible (this latter part can be solved too w/o LTO). [9/n]
1
Hm, it does emit a hash for my test. Maybe I did not study your source code enough. Then, I don't think you can expectant user who wants to use CFI to completely understand all the involved source code. ¯\_(ツ)_/¯
1
it's not a design choice, it's an implementation detail chosen intentionally to force myself to actually fix bad fptr use in real code vs. let it run unmodified (i guess i'll have to cave in on that one some day). as for writeup, read around nitter.vloup.ch/paxteam/status/1… .
such as optimizations, C++ support (chromium in 2014), xen, etc. all this was done in secret because of the patenting process which only finished recently, so i'm actually more free now to write publicly. we'll see how much time i can spare for this outside family&work. [n/n]
Dec 27, 2018 · 1:41 PM UTC
1

