<-- home

Google Summer of Code 2016 Weekly Report #1

This is to brief you the progress of SAFECode’s Memory Policy Hardening, for those who are interested to see the detailed proposal please consider [1] , for those who are interested to see the my working repository please consider [2]. During the previous weeks I have improved the robustness of bbac implementation in SAFECode.

I conclude the work done during this week as follows:

Testing:

  1. Fixed a bug in SpecializeCMSCalls. CFIChecks, which happens before SpecializeCMSCalls, produces a TargetList global variable. TargetList contains the targets of the specified function call and includes declarations of __loadcheck and __storecheck. The specialize functions use a cast which only accepts the callinst of __loadcheck and __storecheck, the users in the TargetList cause the crash.

  2. Fixed a bug in ExactCheckOpt which will cause safecode crash if the target basic block has only one instruction.

  3. Fixed a bug which caused the test failure of safecode/test/core/byval-001.c and byval-002.c.

  4. Successfully generate the gzip and flex using safecode with bbac support. Currently in will produce some load/store error at runtime, I will check is that a true positive error this week.

Plan for next week:

  1. Discuss with my mentor Dr. John Criswell about the support of VLA size alloca.

  2. Test the bbac implementation on other software and find if there is any bugs.

Please provide any feedback/suggestion including for format of this email.

I would also like to thanks my mentor John Criswell and other community members for providing quick help every time when I asked.

[1] https://docs.google.com/document/d/1SNmdULUqN52zDhM1Odw93DW_vX-2WlL0VgceNWaMLP0/edit?usp=sharing

[2] https://github.com/zhengyangl/safecode-llvm37/tree/safecode+llvm37