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

@@ -206,10 +206,11 @@
         sl_field_t              pr_dmodel;
         sl_field_t              pr_taskid;
         sl_field_t              pr_projid;
         sl_field_t              pr_nzomb;
         sl_field_t              pr_zoneid;
+        sl_field_t              pr_secflags;
         sl_field_t              pr_lwp;
 } sl_pstatus_layout_t;
 
 /*
  * Layout description of prstatus_t, from <sys/old_procfs.h>.

@@ -524,10 +525,16 @@
         sl_field_t              pr_fileflags;
         sl_field_t              pr_fdflags;
         sl_field_t              pr_path;
 } sl_prfdinfo_layout_t;
 
+typedef struct {
+        sl_field_t              sizeof_struct;
+        sl_field_t              psf_effective;
+        sl_field_t              psf_inherit;
+} sl_psecflags_layout_t;
+
 /*
  * This type collects all of the layout definitions for
  * a given architecture.
  */
 typedef struct {

@@ -549,10 +556,11 @@
         const sl_stack_layout_t         *stack;         /* stack_t */
         const sl_sysset_layout_t        *sysset;        /* sysset_t */
         const sl_timestruc_layout_t     *timestruc;     /* timestruc_t */
         const sl_utsname_layout_t       *utsname;       /* struct utsname */
         const sl_prfdinfo_layout_t      *prfdinfo;      /* prdinfo_t */
+        const sl_psecflags_layout_t     *psecflags;     /* psecflags_t */
 } sl_arch_layout_t;
 
 
 
 extern  void            sl_extract_num_field(const char *data, int do_swap,