CVSROOT:        /cvs
Module name:    src
Changes by:     dera...@cvs.openbsd.org 2022/10/14 21:23:50

Modified files:
        sys/kern       : kern_sig.c 
        sys/uvm        : uvm_map.c uvm_map.h 

Log message:
During the MAP_STACK introduction in 2018, sigaltstack() became a
problem because haphazard use could shoot holes in the address space
(changing permissions, providing opportunities for pivoting, etc). I
tried to write a diff to convert the address space correctly but did
not understand enough about map entries, so instead we mapped new
memory over top of the existing object.  Placing a new mapping becomes
unfeasible with the upcoming mimmutable model, so here is code that
adds MAP_STACK to the region.  It will only do so for a contigiously
mapped region that is non-syscall with permission RW, otherwise it
returns an error.
Food for thought: If we know the object isn't service by an object,
we should consider zero'ing the region, to block pre-pivot placement?
ok kettenis

Reply via email to