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,10 +196,11 @@
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,10 +586,19 @@
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,10 +636,11 @@
gen_stack();
gen_sysset();
gen_timestruc();
gen_utsname();
gen_prfdinfo();
+ gen_psecflags();
/*
* Generate the full arch_layout description
*/
@@ -654,10 +665,11 @@
(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
*/