Print this page
uts: Allow for address space randomisation.
Randomise the base addresses of shared objects, non-fixed mappings, the
stack and the heap.  Introduce a service, svc:/system/process-security,
and a tool psecflags(1) to control and observe it

*** 196,205 **** --- 196,206 ---- SCALAR_FIELD(pstatus_t, pr_dmodel, 0); SCALAR_FIELD(pstatus_t, pr_taskid, 1); SCALAR_FIELD(pstatus_t, pr_projid, 1); SCALAR_FIELD(pstatus_t, pr_nzomb, 1); SCALAR_FIELD(pstatus_t, pr_zoneid, 1); + SCALAR_FIELD(pstatus_t, pr_secflags, 0); SCALAR_FIELD(pstatus_t, pr_lwp, 0); END; }
*** 585,594 **** --- 586,604 ---- ARRAY_FIELD(prfdinfo_t, pr_path, 0); END; } + static void + gen_psecflags(void) + { + START(psecflags, psecflags_t); + SCALAR_FIELD(psecflags_t, psf_effective, 0); + SCALAR_FIELD(psecflags_t, psf_inherit, 0); + END; + } + /*ARGSUSED*/ int main(int argc, char *argv[]) {
*** 626,635 **** --- 636,646 ---- gen_stack(); gen_sysset(); gen_timestruc(); gen_utsname(); gen_prfdinfo(); + gen_psecflags(); /* * Generate the full arch_layout description */
*** 654,663 **** --- 665,675 ---- (void) printf(fmt, "stack"); (void) printf(fmt, "sysset"); (void) printf(fmt, "timestruc"); (void) printf(fmt, "utsname"); (void) printf(fmt, "prfdinfo"); + (void) printf(fmt, "psecflags"); (void) printf("};\n"); /* * A public function, to make the information available */