Print this page
7029 want per-process exploit mitigation features (secflags)
7030 want basic address space layout randomization (aslr)
7031 noexec_user_stack should be a secflag
7032 want a means to forbid mappings around NULL.

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libproc/common/Pcontrol.h
          +++ new/usr/src/lib/libproc/common/Pcontrol.h
↓ open down ↓ 37 lines elided ↑ open up ↑
  38   38  
  39   39  #include <stdio.h>
  40   40  #include <gelf.h>
  41   41  #include <synch.h>
  42   42  #include <procfs.h>
  43   43  #include <rtld_db.h>
  44   44  #include <libproc.h>
  45   45  #include <libctf.h>
  46   46  #include <limits.h>
  47   47  #include <libproc.h>
       48 +#include <sys/secflags.h>
  48   49  
  49   50  #ifdef  __cplusplus
  50   51  extern "C" {
  51   52  #endif
  52   53  
  53   54  #include "Putil.h"
  54   55  
  55   56  /*
  56   57   * Definitions of the process control structures, internal to libproc.
  57   58   * These may change without affecting clients of libproc.
↓ open down ↓ 99 lines elided ↑ open up ↑
 157  158          off64_t core_size;      /* size of core file in bytes */
 158  159          char *core_platform;    /* platform string from core file */
 159  160          struct utsname *core_uts;       /* uname(2) data from core file */
 160  161          prcred_t *core_cred;    /* process credential from core file */
 161  162          core_content_t core_content;    /* content dumped to core file */
 162  163          prpriv_t *core_priv;    /* process privileges from core file */
 163  164          size_t core_priv_size;  /* size of the privileges */
 164  165          void *core_privinfo;    /* system privileges info from core file */
 165  166          priv_impl_info_t *core_ppii;    /* NOTE entry for core_privinfo */
 166  167          char *core_zonename;    /* zone name from core file */
      168 +        prsecflags_t *core_secflags; /* secflags from core file */
 167  169  #if defined(__i386) || defined(__amd64)
 168  170          struct ssd *core_ldt;   /* LDT entries from core file */
 169  171          uint_t core_nldt;       /* number of LDT entries in core file */
 170  172  #endif
 171  173  } core_info_t;
 172  174  
 173  175  typedef struct elf_file_header { /* extended ELF header */
 174  176          unsigned char e_ident[EI_NIDENT];
 175  177          Elf64_Half e_type;
 176  178          Elf64_Half e_machine;
↓ open down ↓ 137 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX