Date: Wed, 25 Oct 2006 19:10:50 GMT From: Todd Miller <millert@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 108410 for review Message-ID: <200610251910.k9PJAoPr055049@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=108410 Change 108410 by millert@millert_macbook on 2006/10/25 19:10:13 Call mac_proc_check_debug() for ptrace() and task_for_pid(). Affected files ... .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/mach_process.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/vm/vm_unix.c#3 edit .. //depot/projects/trustedbsd/sedarwin8/darwin/xnu/security/mac_policy.h#15 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/kern/mach_process.c#2 (text+ko) ==== @@ -417,5 +417,13 @@ *errp = EBUSY; return (0); } + +#ifdef MAC + my_err = mac_proc_check_debug(creds, traced_procp); + if (my_err) { + *errp = my_err; + return (0); + } +#endif return(1); } ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/bsd/vm/vm_unix.c#3 (text+ko) ==== @@ -405,6 +405,11 @@ ) && (p->p_stat != SZOMB) ) { +#ifdef MAC + error = mac_proc_check_debug(kauth_cred_get(), p); + if (error) + goto noperm; +#endif if (p->task != TASK_NULL) { task_reference(p->task); sright = (void *)convert_task_to_port(p->task); @@ -419,6 +424,7 @@ error = KERN_SUCCESS; goto tfpout; } +noperm: task_deallocate(t1); tret = MACH_PORT_NULL; (void) copyout((char *) &tret, task_addr, sizeof(mach_port_name_t)); ==== //depot/projects/trustedbsd/sedarwin8/darwin/xnu/security/mac_policy.h#15 (text+ko) ==== @@ -3513,8 +3513,7 @@ Determine whether the subject identified by the credential can debug the passed process. This call may be made in a number of situations, - including use of the ptrace(2) and ktrace(2) APIs, as well as for some - types of procfs operations. + including use of the ptrace(2), ktrace(2) and task_for_pid(2) APIs. @return Return 0 if access is granted, otherwise an appropriate value for errno should be returned. Suggested failure: EACCES for label mismatch,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200610251910.k9PJAoPr055049>