changeset 8965:6adf6294c134 onnv_110

6805727 assertion for non-null credential tripped in tcp_tpi_accept
author Anders Persson <Anders.Persson@Sun.COM>
date Mon, 02 Mar 2009 22:33:16 -0800
parents 6f6c3509c6b6
children ad150248f03c
files usr/src/uts/common/fs/sockfs/socktpi.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/fs/sockfs/socktpi.c	Wed Feb 11 15:38:45 2009 -0800
+++ b/usr/src/uts/common/fs/sockfs/socktpi.c	Mon Mar 02 22:33:16 2009 -0800
@@ -1884,7 +1884,6 @@
 
 	/*
 	 * Record so_peercred and so_cpid from a cred in the T_CONN_IND.
-	 * Send down a T_CONN_RES without a cred.
 	 */
 	if ((DB_REF(mp) > 1) || MBLKSIZE(mp) <
 	    (sizeof (struct T_conn_res) + sizeof (intptr_t))) {
@@ -1900,7 +1899,7 @@
 		freemsg(mp);
 
 		mp = soallocproto1(NULL, sizeof (struct T_conn_res) +
-		    sizeof (intptr_t), 0, _ALLOC_INTR, NULL);
+		    sizeof (intptr_t), 0, _ALLOC_INTR, cr);
 		if (mp == NULL) {
 			/*
 			 * Accept can not fail with ENOBUFS.
@@ -1922,6 +1921,8 @@
 		mp->b_rptr = DB_BASE(mp);
 		conn_res = (struct T_conn_res *)mp->b_rptr;
 		mp->b_wptr = mp->b_rptr + sizeof (struct T_conn_res);
+
+		mblk_setcred(mp, cr, curproc->p_pid);
 	}
 
 	/*