Control-flow integrity in 5.13
Control-flow integrity in 5.13
Posted May 22, 2021 5:00 UTC (Sat) by Cyberax (✭ supporter ✭, #52523)In reply to: Control-flow integrity in 5.13 by Paf
Parent article: Control-flow integrity in 5.13
Posted May 22, 2021 14:45 UTC (Sat)
by Paf (subscriber, #91811)
[Link] (1 responses)
Posted May 25, 2021 18:00 UTC (Tue)
by andresfreund (subscriber, #69562)
[Link]
I'm pretty sure that several compilers use profile guided "optimistic" devirtualization, which basically ends up with code like
Control-flow integrity in 5.13
Control-flow integrity in 5.13
if (call_target == very_common_target) very_common_target() else if (call_target == also_common_target) also_common_target() else *call_target(). And I've seen code like that manually written in plenty places, with good success.