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/cmd/sgs/elfdump/common/struct_layout.h
          +++ new/usr/src/cmd/sgs/elfdump/common/struct_layout.h
↓ open down ↓ 518 lines elided ↑ open up ↑
 519  519          sl_field_t              pr_rmajor;
 520  520          sl_field_t              pr_rminor;
 521  521          sl_field_t              pr_ino;
 522  522          sl_field_t              pr_offset;
 523  523          sl_field_t              pr_size;
 524  524          sl_field_t              pr_fileflags;
 525  525          sl_field_t              pr_fdflags;
 526  526          sl_field_t              pr_path;
 527  527  } sl_prfdinfo_layout_t;
 528  528  
      529 +typedef struct {
      530 +        sl_field_t              sizeof_struct;
      531 +        sl_field_t              pr_version;
      532 +        sl_field_t              pr_effective;
      533 +        sl_field_t              pr_inherit;
      534 +        sl_field_t              pr_lower;
      535 +        sl_field_t              pr_upper;
      536 +} sl_prsecflags_layout_t;
      537 +
 529  538  /*
 530  539   * This type collects all of the layout definitions for
 531  540   * a given architecture.
 532  541   */
 533  542  typedef struct {
 534  543          const sl_auxv_layout_t          *auxv;          /* auxv_t */
 535  544          const sl_fltset_layout_t        *fltset;        /* fltset_t */
 536  545          const sl_lwpsinfo_layout_t      *lwpsinfo;      /* lwpsinfo_t */
 537  546          const sl_lwpstatus_layout_t     *lwpstatus;     /* lwpstatus_t */
 538  547          const sl_prcred_layout_t        *prcred;        /* prcred_t */
↓ open down ↓ 5 lines elided ↑ open up ↑
 544  553          const sl_prpsinfo_layout_t      *prpsinfo;      /* prpsinfo_t */
 545  554          const sl_prstatus_layout_t      *prstatus;      /* prstatus_t */
 546  555          const sl_sigaction_layout_t     *sigaction;     /* struct sigaction */
 547  556          const sl_siginfo_layout_t       *siginfo;       /* siginfo_t */
 548  557          const sl_sigset_layout_t        *sigset;        /* sigset_t */
 549  558          const sl_stack_layout_t         *stack;         /* stack_t */
 550  559          const sl_sysset_layout_t        *sysset;        /* sysset_t */
 551  560          const sl_timestruc_layout_t     *timestruc;     /* timestruc_t */
 552  561          const sl_utsname_layout_t       *utsname;       /* struct utsname */
 553  562          const sl_prfdinfo_layout_t      *prfdinfo;      /* prdinfo_t */
      563 +        const sl_prsecflags_layout_t    *prsecflags;    /* prsecflags_t */
 554  564  } sl_arch_layout_t;
 555  565  
 556  566  
 557  567  
 558  568  extern  void            sl_extract_num_field(const char *data, int do_swap,
 559  569                              const sl_field_t *fdesc, sl_data_t *field_data);
 560  570  extern  Word            sl_extract_as_word(const char *data, int do_swap,
 561  571                              const sl_field_t *fdesc);
 562  572  extern  Lword           sl_extract_as_lword(const char *data, int do_swap,
 563  573                              const sl_field_t *fdesc);
↓ open down ↓ 20 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX