Create a 'StrictProvenanceBackend' that restores CHERI functionality
This current draft duplicates way too much code and will have to be revised. Essential all it does is provide a custom SlabMetadata class that extends FrontendSlabMetadata with a chunk_ptr to store the original pointer to the slab with the original bounds of the mmaped region (this used to exist but was removed during refactoring). alloc_range sets this in the SlabMetadata and dealloc_range uses it instead of the pointer argument (which might have restricted bounds).
FWIW, the Morello cluster is very nearly ready to serve as a CI backend going forward; if you have an updated version of this you want me to try putting through that machinery, let me know.
Should this be closed now?
I think it contains some changes to clear pointers that didn't make it into @nwf 's version so I should rebase on top of main and resubmit at some point.
It looks like the CLEAN_POINTER changes all made it into #528, and the rest has been superseeded by #537, so I am going to close this.