Print this page
sync further changes from uts/aslr

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/exec/elf/elf.c
          +++ new/usr/src/uts/common/exec/elf/elf.c
↓ open down ↓ 177 lines elided ↑ open up ↑
 178  178                  return (EINVAL);
 179  179          }
 180  180  
 181  181          if (val == 0) {
 182  182                  if (secflag_isset(p->p_secflags.psf_lower, flag))
 183  183                          return (EPERM);
 184  184                  if ((secpolicy_psecflags(CRED(), p, p) != 0) &&
 185  185                      secflag_isset(p->p_secflags.psf_inherit, flag))
 186  186                          return (EPERM);
 187  187  
 188      -                secflag_clear(&p->p_secflags.psf_inherit, flag);
 189  188                  secflag_clear(&p->p_secflags.psf_effective, flag);
 190  189          } else {
 191  190                  if (!secflag_isset(p->p_secflags.psf_upper, flag))
 192  191                          return (EPERM);
 193  192  
 194  193                  if ((secpolicy_psecflags(CRED(), p, p) != 0) &&
 195  194                      !secflag_isset(p->p_secflags.psf_inherit, flag))
 196  195                          return (EPERM);
 197  196  
 198      -                secflag_set(&p->p_secflags.psf_inherit, flag);
 199  197                  secflag_set(&p->p_secflags.psf_effective, flag);
 200  198          }
 201  199  
 202  200          return (0);
 203  201  }
 204  202  
 205  203  /*
 206  204   * Map in the executable pointed to by vp. Returns 0 on success.
 207  205   */
 208  206  int
↓ open down ↓ 2150 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX