toaarnio / llvm-ir-memprotect

LLVM IR instrumentation for protection against out-of-bounds memory accesses
Mozilla Public License 2.0
9 stars 2 forks source link

Check that every type of limit check works correctly #19

Open elhigu opened 11 years ago

elhigu commented 11 years ago

Need to verify that check generation adds loads if indirect limits are fetched and that global struct limits are fetched directly from struct allocation start and end addresses.

Currently at least LocalLimit checks does not seem to work (at least for global scope struct) and would be quite possible that the same thing fails for ConstantAddresSpace limits as well.

Global and private address space limits seems to be always fine, since global scope limits are always red from PA struct and private limits are got without any loads from geps taken from program allocations argument.

Or maybe only loading limits from safe args is done correctly...

elhigu commented 11 years ago

At least most of the current checks are working fine. However needs test case where all different limit checks are generated.