[LLVMdev] [RFC] Simple control-flow integrity

Tom Roeder tmroeder at google.com
Fri Mar 21 12:01:24 PDT 2014


On Fri, Mar 21, 2014 at 11:46 AM, Tom Roeder <tmroeder at google.com> wrote:
> On Thu, Mar 20, 2014 at 3:29 PM, Peter Collingbourne <peter at pcc.me.uk> wrote:
>>
>>
>> An alternative proposal: introduce a new function attribute named, say,
>> 'jumptable', which would cause the backend to emit a jump table entry and
>> redirect function references other than calls through the jump table. (Direct
>> function calls could call the original function directly, as an optimization.)
>>
>> The CFI pass could then consist of marking every address-taken function with
>> 'jumptable' and introducing the pointer safety checks at call sites.
>
> That's an interesting suggestion. I'll look into it.

However, adding a new function attribute would require changing the
bitcode format, right? I thought that was to be avoided in general.
I'm not sure it makes sense to change the bitcode format to support
CFI.



More information about the llvm-dev mailing list