You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently struct pcb is allocated by stealing a chunk of the kernel stack. There are two issues in the current implementation.
We are not setting bounds on struct pcb
Setting bounds on struct pcb requires dealing with representability and padding.
By moving struct pcb to a separate allocation we avoid having to deal with representability issues and prevent overflow into pcb from a kernel stack pointer.
The text was updated successfully, but these errors were encountered:
Note that upstream FreeBSD already allocates the pcb separately for amd64 (it is allocated as a member of td_md). We can probably do similar changes for arm64 and riscv64 upstream and then loop those back into CheriBSD to reduce our diff.
Currently
struct pcb
is allocated by stealing a chunk of the kernel stack. There are two issues in the current implementation.struct pcb
struct pcb
requires dealing with representability and padding.By moving
struct pcb
to a separate allocation we avoid having to deal with representability issues and prevent overflow into pcb from a kernel stack pointer.The text was updated successfully, but these errors were encountered: