Open tCm3nc opened 2 years ago
The first trance of this is complete. I need further to add the interval tree code in order to be able to determine whether a particular pointer addition is within range or not. There will likely be clashes with cryptography code where an opaque value, would clash with a valid tagged pointer and its associated shadow memory. Not sure what to do in this scenario though.
By large allocations I mean greater than 2^16 byte allocations. When performing pointer arithmetic, the mechanism to check if the access is valid is currently performed like so:
QEMU_pointer_arithmetic_helper(tagged_ptr, addend):
This can be improved though.
For a large allocation, split it into 2^16 blocks. For each 2^16 block, we allocate different tags.
The above helper changes to: