Copying Memory

The kernel’s bcopy, memcpy, copyin, and copyout routines are capability-unaware and will not preserve tag bits.

New cheri_bcopy, cheri_memcpy, copyincap, and copyoutcap are used in situations where preserving tags is desirable – such as copying in or out of CHERI trusted stacks.

Clearing tag bits across conventional IPC, system call arguments, and so on is important in preventing the accidental leaking of rights between address space where only data copies are intended.

Created Jul 16, 2019 // Last Updated Oct 27, 2019

If you could revise
the fundmental principles of
computer system design
to improve security...

... what would you change?