6718877 crgetzoneid() use can cause problems when forking processes with USDT providers in a non global zone
authorjhaslam
Wed, 02 Jul 2008 03:42:24 -0700
changeset 7004 f21ce73d8665
parent 7003 9a4cb993aea7
child 7005 a565da7e8ef1
6718877 crgetzoneid() use can cause problems when forking processes with USDT providers in a non global zone
usr/src/uts/common/dtrace/dtrace.c
--- a/usr/src/uts/common/dtrace/dtrace.c	Wed Jul 02 02:52:25 2008 -0700
+++ b/usr/src/uts/common/dtrace/dtrace.c	Wed Jul 02 03:42:24 2008 -0700
@@ -10778,7 +10778,8 @@
 	for (enab = dtrace_retained; enab != NULL; enab = enab->dten_next) {
 		cred_t *cr = enab->dten_vstate->dtvs_state->dts_cred.dcr_cred;
 
-		if (INGLOBALZONE(curproc) || getzoneid() == crgetzoneid(cr))
+		if (INGLOBALZONE(curproc) ||
+		    cr != NULL && getzoneid() == crgetzoneid(cr))
 			(void) dtrace_enabling_match(enab, NULL);
 	}