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
*/