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

*** 110,119 **** --- 110,120 ---- int pause(); long pcsample(void *, long); int privsys(int, priv_op_t, priv_ptype_t, void *, size_t, int); int profil(unsigned short *, size_t, ulong_t, uint_t); ssize_t pread(int, void *, size_t, off_t); + int psecflags(); ssize_t pwrite(int, void *, size_t, off_t); ssize_t read(int, void *, size_t); int rename(char *, char *); int renameat(int, char *, int, char *); void rexit(int);
*** 437,447 **** { /* 0 */ IF_LP64( SYSENT_NOSYS(), SYSENT_C("indir", indir, 1)), /* 1 */ SYSENT_CI("exit", rexit, 1), ! /* 2 */ SYSENT_LOADABLE(), /* (was forkall) */ /* 3 */ SYSENT_CL("read", read, 3), /* 4 */ SYSENT_CL("write", write, 3), /* 5 */ SYSENT_CI("open", open, 3), /* 6 */ SYSENT_CI("close", close, 1), /* 7 */ SYSENT_CI("linkat", linkat, 5), --- 438,448 ---- { /* 0 */ IF_LP64( SYSENT_NOSYS(), SYSENT_C("indir", indir, 1)), /* 1 */ SYSENT_CI("exit", rexit, 1), ! /* 2 */ SYSENT_CI("psecflags", psecflags, 3), /* 3 */ SYSENT_CL("read", read, 3), /* 4 */ SYSENT_CL("write", write, 3), /* 5 */ SYSENT_CI("open", open, 3), /* 6 */ SYSENT_CI("close", close, 1), /* 7 */ SYSENT_CI("linkat", linkat, 5),
*** 818,828 **** */ struct sysent sysent32[NSYSCALL] = { /* 0 */ SYSENT_C("indir", indir, 1), /* 1 */ SYSENT_CI("exit", (int (*)())rexit, 1), ! /* 2 */ SYSENT_LOADABLE32(), /* (was forkall) */ /* 3 */ SYSENT_CI("read", read32, 3), /* 4 */ SYSENT_CI("write", write32, 3), /* 5 */ SYSENT_CI("open", open32, 3), /* 6 */ SYSENT_CI("close", close, 1), /* 7 */ SYSENT_CI("linkat", linkat, 5), --- 819,829 ---- */ struct sysent sysent32[NSYSCALL] = { /* 0 */ SYSENT_C("indir", indir, 1), /* 1 */ SYSENT_CI("exit", (int (*)())rexit, 1), ! /* 2 */ SYSENT_CI("psecflags", psecflags, 3), /* 3 */ SYSENT_CI("read", read32, 3), /* 4 */ SYSENT_CI("write", write32, 3), /* 5 */ SYSENT_CI("open", open32, 3), /* 6 */ SYSENT_CI("close", close, 1), /* 7 */ SYSENT_CI("linkat", linkat, 5),