Deleted Added
full compact
26c26
< * $FreeBSD: head/tools/regression/security/proc_to_proc/scenario.c 75482 2001-04-13 16:09:40Z rwatson $
---
> * $FreeBSD: head/tools/regression/security/proc_to_proc/scenario.c 75485 2001-04-13 16:25:25Z rwatson $
29c29,30
< #include <sys/types.h>
---
> #include <sys/param.h>
> #include <sys/uio.h>
34a36
> #include <sys/ktrace.h>
56a59
> int sc_canktrace_errno; /* desired ktrace failure */
89,93c92,96
< /* cred1 cred2 ptrace sighup sigsegv see sched name */
< { &creds[0], &creds[0], 0, 0, 0, 0, 0, "0. priv on priv"},
< { &creds[0], &creds[1], 0, 0, 0, 0, 0, "1. priv on priv"},
< { &creds[1], &creds[0], 0, 0, 0, 0, 0, "2. priv on priv"},
< { &creds[1], &creds[1], 0, 0, 0, 0, 0, "3. priv on priv"},
---
> /* cred1 cred2 ptrace ktrace, sighup sigsegv see sched name */
> { &creds[0], &creds[0], 0, 0, 0, 0, 0, 0, "0. priv on priv"},
> { &creds[0], &creds[1], 0, 0, 0, 0, 0, 0, "1. priv on priv"},
> { &creds[1], &creds[0], 0, 0, 0, 0, 0, 0, "2. priv on priv"},
> { &creds[1], &creds[1], 0, 0, 0, 0, 0, 0, "3. priv on priv"},
95,98c98,101
< { &creds[0], &creds[2], 0, 0, 0, 0, 0, "4. priv on unpriv1"},
< { &creds[0], &creds[3], 0, 0, 0, 0, 0, "5. priv on unpriv1"},
< { &creds[1], &creds[2], 0, 0, 0, 0, 0, "6. priv on unpriv1"},
< { &creds[1], &creds[3], 0, 0, 0, 0, 0, "7. priv on unpriv1"},
---
> { &creds[0], &creds[2], 0, 0, 0, 0, 0, 0, "4. priv on unpriv1"},
> { &creds[0], &creds[3], 0, 0, 0, 0, 0, 0, "5. priv on unpriv1"},
> { &creds[1], &creds[2], 0, 0, 0, 0, 0, 0, "6. priv on unpriv1"},
> { &creds[1], &creds[3], 0, 0, 0, 0, 0, 0, "7. priv on unpriv1"},
100,103c103,106
< { &creds[2], &creds[0], EPERM, EPERM, EPERM, 0, EPERM, "8. unpriv1 on priv"},
< { &creds[2], &creds[1], EPERM, EPERM, EPERM, 0, EPERM, "9. unpriv1 on priv"},
< { &creds[3], &creds[0], EPERM, EPERM, EPERM, 0, EPERM, "10. unpriv1 on priv"},
< { &creds[3], &creds[1], EPERM, EPERM, EPERM, 0, EPERM, "11. unpriv1 on priv"},
---
> { &creds[2], &creds[0], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "8. unpriv1 on priv"},
> { &creds[2], &creds[1], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "9. unpriv1 on priv"},
> { &creds[3], &creds[0], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "10. unpriv1 on priv"},
> { &creds[3], &creds[1], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "11. unpriv1 on priv"},
105,108c108,111
< { &creds[2], &creds[2], 0, 0, 0, 0, 0, "12. unpriv1 on unpriv1"},
< { &creds[2], &creds[3], EPERM, 0, EPERM, 0, 0, "13. unpriv1 on unpriv1"},
< { &creds[3], &creds[2], 0, 0, 0, 0, 0, "14. unpriv1 on unpriv1"},
< { &creds[3], &creds[3], EPERM, 0, EPERM, 0, 0, "15. unpriv1 on unpriv1"},
---
> { &creds[2], &creds[2], 0, 0, 0, 0, 0, 0, "12. unpriv1 on unpriv1"},
> { &creds[2], &creds[3], EPERM, EPERM, 0, EPERM, 0, 0, "13. unpriv1 on unpriv1"},
> { &creds[3], &creds[2], 0, 0, 0, 0, 0, 0, "14. unpriv1 on unpriv1"},
> { &creds[3], &creds[3], EPERM, EPERM, 0, EPERM, 0, 0, "15. unpriv1 on unpriv1"},
110,113c113,116
< { &creds[2], &creds[4], EPERM, EPERM, EPERM, 0, EPERM, "16. unpriv1 on unpriv2"},
< { &creds[2], &creds[5], EPERM, EPERM, EPERM, 0, EPERM, "17. unpriv1 on unpriv2"},
< { &creds[3], &creds[4], EPERM, EPERM, EPERM, 0, EPERM, "18. unpriv1 on unpriv2"},
< { &creds[3], &creds[5], EPERM, EPERM, EPERM, 0, EPERM, "19. unpriv1 on unpriv2"},
---
> { &creds[2], &creds[4], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "16. unpriv1 on unpriv2"},
> { &creds[2], &creds[5], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "17. unpriv1 on unpriv2"},
> { &creds[3], &creds[4], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "18. unpriv1 on unpriv2"},
> { &creds[3], &creds[5], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "19. unpriv1 on unpriv2"},
115,118c118,121
< { &creds[2], &creds[6], EPERM, EPERM, EPERM, 0, EPERM, "20. unpriv1 on daemon1"},
< { &creds[2], &creds[7], EPERM, EPERM, EPERM, 0, EPERM, "21. unpriv1 on daemon1"},
< { &creds[3], &creds[6], EPERM, EPERM, EPERM, 0, EPERM, "22. unpriv1 on daemon1"},
< { &creds[3], &creds[7], EPERM, EPERM, EPERM, 0, EPERM, "23. unpriv1 on daemon1"},
---
> { &creds[2], &creds[6], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "20. unpriv1 on daemon1"},
> { &creds[2], &creds[7], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "21. unpriv1 on daemon1"},
> { &creds[3], &creds[6], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "22. unpriv1 on daemon1"},
> { &creds[3], &creds[7], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "23. unpriv1 on daemon1"},
120,123c123,126
< { &creds[2], &creds[8], EPERM, EPERM, EPERM, 0, EPERM, "24. unpriv1 on daemon2"},
< { &creds[2], &creds[9], EPERM, EPERM, EPERM, 0, EPERM, "25. unpriv1 on daemon2"},
< { &creds[3], &creds[8], EPERM, EPERM, EPERM, 0, EPERM, "26. unpriv1 on daemon2"},
< { &creds[3], &creds[9], EPERM, EPERM, EPERM, 0, EPERM, "27. unpriv1 on daemon2"},
---
> { &creds[2], &creds[8], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "24. unpriv1 on daemon2"},
> { &creds[2], &creds[9], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "25. unpriv1 on daemon2"},
> { &creds[3], &creds[8], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "26. unpriv1 on daemon2"},
> { &creds[3], &creds[9], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "27. unpriv1 on daemon2"},
125,128c128,131
< { &creds[2], &creds[10], EPERM, 0, 0, 0, 0, "28. unpriv1 on setuid1"},
< { &creds[2], &creds[11], EPERM, 0, EPERM, 0, 0, "29. unpriv1 on setuid1"},
< { &creds[3], &creds[10], EPERM, 0, 0, 0, 0, "30. unpriv1 on setuid1"},
< { &creds[3], &creds[11], EPERM, 0, EPERM, 0, 0, "31. unpriv1 on setuid1"},
---
> { &creds[2], &creds[10], EPERM, EPERM, 0, 0, 0, 0, "28. unpriv1 on setuid1"},
> { &creds[2], &creds[11], EPERM, EPERM, 0, EPERM, 0, 0, "29. unpriv1 on setuid1"},
> { &creds[3], &creds[10], EPERM, EPERM, 0, 0, 0, 0, "30. unpriv1 on setuid1"},
> { &creds[3], &creds[11], EPERM, EPERM, 0, EPERM, 0, 0, "31. unpriv1 on setuid1"},
130,133c133,136
< { &creds[2], &creds[12], EPERM, EPERM, EPERM, 0, EPERM, "32. unpriv1 on setuid2"},
< { &creds[2], &creds[13], EPERM, EPERM, EPERM, 0, EPERM, "33. unpriv1 on setuid2"},
< { &creds[3], &creds[12], EPERM, EPERM, EPERM, 0, EPERM, "34. unpriv1 on setuid2"},
< { &creds[3], &creds[13], EPERM, EPERM, EPERM, 0, EPERM, "35. unpriv1 on setuid2"},
---
> { &creds[2], &creds[12], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "32. unpriv1 on setuid2"},
> { &creds[2], &creds[13], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "33. unpriv1 on setuid2"},
> { &creds[3], &creds[12], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "34. unpriv1 on setuid2"},
> { &creds[3], &creds[13], EPERM, EPERM, EPERM, EPERM, 0, EPERM, "35. unpriv1 on setuid2"},
160a164
> printf("%d\n", error);
249,252c253,257
< #define LOOP_SIGHUP 1
< #define LOOP_SIGSEGV 2
< #define LOOP_SEE 3
< #define LOOP_SCHED 4
---
> #define LOOP_KTRACE 1
> #define LOOP_SIGHUP 2
> #define LOOP_SIGSEGV 3
> #define LOOP_SEE 4
> #define LOOP_SCHED 5
264c269
< char *name;
---
> char *name, *tracefile;
333a339,353
> case LOOP_KTRACE:
> tracefile = mktemp("/tmp/testuid_ktrace.XXXXXX");
> if (tracefile == NULL) {
> error = errno;
> perror("mktemp");
> break;
> }
> error = ktrace(tracefile, KTROP_SET,
> KTRFAC_SYSCALL, pid1);
> error = errno;
> name = "ktrace";
> desirederror =
> scenarios[scenario].sc_canktrace_errno;
> unlink(tracefile);
> break;