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

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/sgs/libconv/common/dynamic.c
          +++ new/usr/src/cmd/sgs/libconv/common/dynamic.c
↓ open down ↓ 548 lines elided ↑ open up ↑
 549  549          static const Msg        tags_sunw_auxiliary_cf[] = {
 550  550                  MSG_DT_SUNW_AUXILIARY_CF,       MSG_DT_SUNW_RTLDINF_CF,
 551  551                  MSG_DT_SUNW_FILTER_CF,          MSG_DT_SUNW_CAP_CF,
 552  552                  MSG_DT_SUNW_SYMTAB_CF,          MSG_DT_SUNW_SYMSZ_CF,
 553  553                  MSG_DT_SUNW_SORTENT_CF,         MSG_DT_SUNW_SYMSORT_CF,
 554  554                  MSG_DT_SUNW_SYMSORTSZ_CF,       MSG_DT_SUNW_TLSSORT_CF,
 555  555                  MSG_DT_SUNW_TLSSORTSZ_CF,       MSG_DT_SUNW_CAPINFO_CF,
 556  556                  MSG_DT_SUNW_STRPAD_CF,          MSG_DT_SUNW_CAPCHAIN_CF,
 557  557                  MSG_DT_SUNW_LDMACH_CF,          0,
 558  558                  MSG_DT_SUNW_CAPCHAINENT_CF,     0,
 559      -                MSG_DT_SUNW_CAPCHAINSZ_CF
      559 +                MSG_DT_SUNW_CAPCHAINSZ_CF,      0,
      560 +                0,                              0,
      561 +                MSG_DT_SUNW_ASLR_CF
 560  562          };
 561  563          static const Msg        tags_sunw_auxiliary_cfnp[] = {
 562  564                  MSG_DT_SUNW_AUXILIARY_CFNP,     MSG_DT_SUNW_RTLDINF_CFNP,
 563  565                  MSG_DT_SUNW_FILTER_CFNP,        MSG_DT_SUNW_CAP_CFNP,
 564  566                  MSG_DT_SUNW_SYMTAB_CFNP,        MSG_DT_SUNW_SYMSZ_CFNP,
 565  567                  MSG_DT_SUNW_SORTENT_CFNP,       MSG_DT_SUNW_SYMSORT_CFNP,
 566  568                  MSG_DT_SUNW_SYMSORTSZ_CFNP,     MSG_DT_SUNW_TLSSORT_CFNP,
 567  569                  MSG_DT_SUNW_TLSSORTSZ_CFNP,     MSG_DT_SUNW_CAPINFO_CFNP,
 568  570                  MSG_DT_SUNW_STRPAD_CFNP,        MSG_DT_SUNW_CAPCHAIN_CFNP,
 569  571                  MSG_DT_SUNW_LDMACH_CFNP,        0,
 570  572                  MSG_DT_SUNW_CAPCHAINENT_CFNP,   0,
 571      -                MSG_DT_SUNW_CAPCHAINSZ_CFNP
      573 +                MSG_DT_SUNW_CAPCHAINSZ_CFNP,    0,
      574 +                0,                              0,
      575 +                MSG_DT_SUNW_ASLR_CFNP
 572  576          };
 573  577          static const Msg        tags_sunw_auxiliary_nf[] = {
 574  578                  MSG_DT_SUNW_AUXILIARY_NF,       MSG_DT_SUNW_RTLDINF_NF,
 575  579                  MSG_DT_SUNW_FILTER_NF,          MSG_DT_SUNW_CAP_NF,
 576  580                  MSG_DT_SUNW_SYMTAB_NF,          MSG_DT_SUNW_SYMSZ_NF,
 577  581                  MSG_DT_SUNW_SORTENT_NF,         MSG_DT_SUNW_SYMSORT_NF,
 578  582                  MSG_DT_SUNW_SYMSORTSZ_NF,       MSG_DT_SUNW_TLSSORT_NF,
 579  583                  MSG_DT_SUNW_TLSSORTSZ_NF,       MSG_DT_SUNW_CAPINFO_NF,
 580  584                  MSG_DT_SUNW_STRPAD_NF,          MSG_DT_SUNW_CAPCHAIN_NF,
 581  585                  MSG_DT_SUNW_LDMACH_NF,          0,
 582  586                  MSG_DT_SUNW_CAPCHAINENT_NF,     0,
 583      -                MSG_DT_SUNW_CAPCHAINSZ_NF
      587 +                MSG_DT_SUNW_CAPCHAINSZ_NF,      0,
      588 +                0,                              0,
      589 +                MSG_DT_SUNW_ASLR_NF
 584  590          };
 585  591          static const conv_ds_msg_t ds_sunw_auxiliary_cf = {
 586  592              CONV_DS_MSG_INIT(DT_SUNW_AUXILIARY, tags_sunw_auxiliary_cf) };
 587  593          static const conv_ds_msg_t ds_sunw_auxiliary_cfnp = {
 588  594              CONV_DS_MSG_INIT(DT_SUNW_AUXILIARY, tags_sunw_auxiliary_cfnp) };
 589  595          static const conv_ds_msg_t ds_sunw_auxiliary_nf = {
 590  596              CONV_DS_MSG_INIT(DT_SUNW_AUXILIARY, tags_sunw_auxiliary_nf) };
 591  597  
 592  598          /*
 593  599           * GNU: (In DT_VALRNGLO section) DT_GNU_PRELINKED - DT_GNU_LIBLISTSZ
↓ open down ↓ 388 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX