PERFORCE change 121671 for review

Zhouyi ZHOU zhouzhouyi at FreeBSD.org
Fri Jun 15 03:41:26 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=121671

Change 121671 by zhouzhouyi at zhouzhouyi_mactest on 2007/06/15 03:41:21

	Code beautification and conditional checks for void label

Affected files ...

.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#7 edit
.. //depot/projects/soc2007/zhouzhouyi_mactest_soc/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_private.h#5 edit

Differences ...

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test.c#7 (text+ko) ====

@@ -668,7 +668,8 @@
     struct devfs_dirent *de, struct label *delabel, struct vnode *vp,
     struct label *vplabel)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_associate_vnode_devfs with mplabel delabel and vplabel:", 
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_associate_vnode_devfs "
+		"with mplabel delabel and vplabel:", 
 		strlen("mac_test_associate_vnode_devfs with mplabel delabel and vplabel:"));
 	MACTEST_PIPE_SUBMIT_LABEL3(vnode,mplabel,vnode,delabel,vnode,vplabel);
 	if (delabel != NULL && SLOT(delabel) == MAGIC_MACTESTPIPE)
@@ -691,7 +692,8 @@
 {
 	char mac_test[64];
 	int error, buflen = 64;
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_associate_vnode_extattr with mplabel and vplabel:", 
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_associate_vnode_extattr with "
+		"mplabel and vplabel:", 
 		strlen("mac_test_associate_vnode_extattr with mplabel and vplabel:"));
 	MACTEST_PIPE_SUBMIT_LABEL2(vnode,mplabel,vnode,vplabel);
 	bzero(mac_test,buflen);
@@ -711,7 +713,8 @@
 mac_test_associate_vnode_singlelabel(struct mount *mp, struct label *mplabel,
     struct vnode *vp, struct label *vplabel)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_associate_vnode_singlelabel with mplabel and vplabel:", 
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_associate_vnode_singlelabel "
+		"with mplabel and vplabel:", 
 		strlen("mac_test_associate_vnode_singlelabel with mplabel and vplabel:"));
 	MACTEST_PIPE_SUBMIT_LABEL2(vnode,mplabel,vnode,vplabel);
 	LABEL_CHECK(mplabel, MAGIC_MOUNT);
@@ -724,11 +727,15 @@
 mac_test_create_devfs_device(struct ucred *cred, struct mount *mp,
     struct cdev *dev, struct devfs_dirent *de, struct label *delabel)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_devfs_device with delabel:", 
-		strlen("mac_test_create_devfs_device with delabel:"));
-	MACTEST_PIPE_SUBMIT_LABEL(vnode,delabel);
-	if (cred != NULL)
+	struct label * tmplabel;
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_devfs_device with cr_label and delabel:", 
+		strlen("mac_test_create_devfs_device with cr_label and delabel:"));
+	if (cred != NULL){
 		LABEL_CHECK(cred->cr_label, MAGIC_CRED);
+		tmplabel = cred->cr_label;
+	}else 
+		tmplabel = 0;
+	MACTEST_PIPE_SUBMIT_LABEL2(cred, 0, vnode,delabel);
 	LABEL_CHECK(delabel, MAGIC_DEVFS);
 	COUNTER_INC(create_devfs_device);
 }
@@ -738,7 +745,9 @@
 mac_test_create_devfs_directory(struct mount *mp, char *dirname,
     int dirnamelen, struct devfs_dirent *de, struct label *delabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_devfs_directory with delabel:", 
+		strlen("mac_test_create_devfs_directory with delabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL(vnode,delabel);
 	LABEL_CHECK(delabel, MAGIC_DEVFS);
 	COUNTER_INC(create_devfs_directory);
 }
@@ -749,9 +758,10 @@
     struct devfs_dirent *dd, struct label *ddlabel, struct devfs_dirent *de,
     struct label *delabel)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_devfs_symlink with ddlabel and delabel:", 
-		strlen("mac_test_create_devfs_symlink with ddlabel and delabel:"));
-	MACTEST_PIPE_SUBMIT_LABEL2(vnode,ddlabel,vnode,delabel);
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_devfs_symlink "
+		"with cr_label ddlabel and delabel:", 
+		strlen("mac_test_create_devfs_symlink with cr_label ddlabel and delabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL3(cred, cred->cr_label, vnode,ddlabel,vnode,delabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(ddlabel, MAGIC_DEVFS);
 	LABEL_CHECK(delabel, MAGIC_DEVFS);
@@ -764,9 +774,12 @@
     struct label *mplabel, struct vnode *dvp, struct label *dvplabel,
     struct vnode *vp, struct label *vplabel, struct componentname *cnp)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_vnode_extattr with mplabel dvplabel and vplabel:", 
-		strlen("mac_test_create_vnode_extattr with mplabel dvplabel and vplabel:"));
-	MACTEST_PIPE_SUBMIT_LABEL3(vnode,mplabel,vnode,dvplabel,vnode,vplabel);
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_vnode_extattr with "
+		"cr_label mplabel dvplabel and vplabel:", 
+		strlen("mac_test_create_vnode_extattr with cr_label "
+		"mplabel dvplabel and vplabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL4(cred,cred->cr_label,vnode,mplabel,vnode,
+							dvplabel,vnode,vplabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(mplabel, MAGIC_MOUNT);
 	LABEL_CHECK(dvplabel, MAGIC_VNODE);
@@ -780,9 +793,9 @@
 mac_test_create_mount(struct ucred *cred, struct mount *mp,
     struct label *mplabel)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_mount with mplabel:", 
-		strlen("mac_test_create_mount with mplabel:"));
-	MACTEST_PIPE_SUBMIT_LABEL(vnode,mplabel);
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_mount with cr_label and mplabel:", 
+		strlen("mac_test_create_mount with cr_label and mplabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred,cred->cr_label,vnode,mplabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(mplabel, MAGIC_MOUNT);
 	COUNTER_INC(create_mount);
@@ -793,9 +806,9 @@
 mac_test_relabel_vnode(struct ucred *cred, struct vnode *vp,
     struct label *vplabel, struct label *label)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_relabel_vnode with vplabel and label:", 
-		strlen("mac_test_relabel_vnode with vplabel and label:"));
-	MACTEST_PIPE_SUBMIT_LABEL2(vnode,vplabel,vnode,label);
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_relabel_vnode with cr_label vplabel and label:", 
+		strlen("mac_test_relabel_vnode with cr_label vplabel and label:"));
+	MACTEST_PIPE_SUBMIT_LABEL3(cred,cred->cr_label,vnode,vplabel,vnode,label);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(vplabel, MAGIC_VNODE);
 	LABEL_CHECK(label, MAGIC_VNODE);
@@ -807,9 +820,10 @@
 mac_test_setlabel_vnode_extattr(struct ucred *cred, struct vnode *vp,
     struct label *vplabel, struct label *intlabel)
 {
-	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_setlabel_vnode_extattr with vplabel and intlabel:", 
-		strlen("mac_test_setlabel_vnode_extattr with vplabel and intlabel:"));
-	MACTEST_PIPE_SUBMIT_LABEL2(vnode,vplabel,vnode,intlabel);
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_setlabel_vnode_extattr with "
+		"cr_label vplabel and intlabel:", 
+		strlen("mac_test_setlabel_vnode_extattr with cr_label vplabel and intlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL3(cred,cred->cr_label,vnode,vplabel,vnode,intlabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(vplabel, MAGIC_VNODE);
 	LABEL_CHECK(intlabel, MAGIC_VNODE);
@@ -823,7 +837,9 @@
 mac_test_update_devfs(struct mount *mp, struct devfs_dirent *devfs_dirent,
     struct label *direntlabel, struct vnode *vp, struct label *vplabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_update_devfs with direntlabel and vplabel:", 
+		strlen("mac_test_update_devfs with direntlabel and vplabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(vnode,direntlabel,vnode,vplabel);
 	LABEL_CHECK(direntlabel, MAGIC_DEVFS);
 	LABEL_CHECK(vplabel, MAGIC_VNODE);
 	COUNTER_INC(update_devfs);
@@ -837,7 +853,10 @@
 mac_test_create_mbuf_from_socket(struct socket *so, struct label *socketlabel,
     struct mbuf *m, struct label *mbuflabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_mbuf_from_socket"
+	" with socketlabel and mbuflabel:", 
+		strlen("mac_test_update_devfs with socketlabel and mbuflabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(socket,socketlabel,vnode,mbuflabel);
 	LABEL_CHECK(socketlabel, MAGIC_SOCKET);
 	LABEL_CHECK(mbuflabel, MAGIC_MBUF);
 	COUNTER_INC(create_mbuf_from_socket);
@@ -848,7 +867,9 @@
 mac_test_create_socket(struct ucred *cred, struct socket *socket,
    struct label *socketlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_socket with cr_label and socketlabel:", 
+		strlen("mac_test_create_socket with cr_label and socketlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred,cred->cr_label,socket,socketlabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(socketlabel, MAGIC_SOCKET);
 	COUNTER_INC(create_socket);
@@ -859,7 +880,9 @@
 mac_test_create_pipe(struct ucred *cred, struct pipepair *pp,
    struct label *pipelabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_pipe with cr_label and pipelabel:", 
+		strlen("mac_test_create_socket with cr_label and pipelabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred,cred->cr_label,pipe,pipelabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(pipelabel, MAGIC_PIPE);
 	COUNTER_INC(create_pipe);
@@ -870,7 +893,9 @@
 mac_test_create_posix_sem(struct ucred *cred, struct ksem *ksem,
    struct label *posixlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_posix_sem with cr_label and posixlabel:", 
+		strlen("mac_test_create_socket with cr_label and posixlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred,cred->cr_label,vnode,posixlabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(posixlabel, MAGIC_POSIX_SEM);
 	COUNTER_INC(create_posix_sem);
@@ -882,7 +907,11 @@
     struct label *oldsocketlabel, struct socket *newsocket,
     struct label *newsocketlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_socket_from_socket with "
+		"oldsocketlabel and newsocketlabel:", 
+		strlen("mac_test_create_socket_from_socket with oldsocketlabel "
+		"and newsocketlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(socket,oldsocketlabel,socket,newsocketlabel);
 	LABEL_CHECK(oldsocketlabel, MAGIC_SOCKET);
 	LABEL_CHECK(newsocketlabel, MAGIC_SOCKET);
 	COUNTER_INC(create_socket_from_socket);
@@ -893,7 +922,10 @@
 mac_test_relabel_socket(struct ucred *cred, struct socket *socket,
     struct label *socketlabel, struct label *newlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_relabel_socket with cr_label "
+		"socketlabel and newlabel:", 
+		strlen("mac_test_relabel_socket with cr_label socketlabel and newlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL3(cred,cred->cr_label,socket,socketlabel,socket,newlabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(newlabel, MAGIC_SOCKET);
 	COUNTER_INC(relabel_socket);
@@ -904,7 +936,10 @@
 mac_test_relabel_pipe(struct ucred *cred, struct pipepair *pp,
     struct label *pipelabel, struct label *newlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_relabel_pipe with cr_label "
+		"pipelabel and newlabel:", 
+		strlen("mac_test_relabel_pipe with cr_label pipelabel and newlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL3(cred,cred->cr_label,pipe,pipelabel,pipe,newlabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(pipelabel, MAGIC_PIPE);
 	LABEL_CHECK(newlabel, MAGIC_PIPE);
@@ -916,7 +951,10 @@
 mac_test_set_socket_peer_from_mbuf(struct mbuf *mbuf, struct label *mbuflabel,
     struct socket *socket, struct label *socketpeerlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_set_socket_peer_from_mbuf with "
+		"mbuflabel and socketpeerlabel:", 
+		strlen("mac_test_set_socket_peer_from_mbuf with mbuflabel and socketpeerlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(vnode,mbuflabel,socket,socketpeerlabel);
 	LABEL_CHECK(mbuflabel, MAGIC_MBUF);
 	LABEL_CHECK(socketpeerlabel, MAGIC_SOCKET);
 	COUNTER_INC(set_socket_peer_from_mbuf);
@@ -931,7 +969,11 @@
     struct label *oldsocketlabel, struct socket *newsocket,
     struct label *newsocketpeerlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_set_socket_peer_from_socket with"
+		" oldsocketlabel and newsocketpeerlabel:", 
+		strlen("mac_test_set_socket_peer_from_socket with "
+		"oldsocketlabel and newsocketpeerlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(socket,oldsocketlabel,socket,newsocketpeerlabel);
 	LABEL_CHECK(oldsocketlabel, MAGIC_SOCKET);
 	LABEL_CHECK(newsocketpeerlabel, MAGIC_SOCKET);
 	COUNTER_INC(set_socket_peer_from_socket);
@@ -942,7 +984,9 @@
 mac_test_create_bpfdesc(struct ucred *cred, struct bpf_d *bpf_d,
     struct label *bpflabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_bpfdesc with cr_label and bpflabel:", 
+		strlen("mac_test_create_bpfdesc with cr_label and bpflabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred,cred->cr_label,vnode,bpflabel);
 	LABEL_CHECK(cred->cr_label, MAGIC_CRED);
 	LABEL_CHECK(bpflabel, MAGIC_BPF);
 	COUNTER_INC(create_bpfdesc);
@@ -953,7 +997,10 @@
 mac_test_create_datagram_from_ipq(struct ipq *ipq, struct label *ipqlabel,
     struct mbuf *datagram, struct label *datagramlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_datagram_from_ipq "
+		"with ipqlabel and datagramlabel:", 
+		strlen("mac_test_create_datagram_from_ipq with ipqlabel and datagramlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(vnode,ipqlabel,vnode,datagramlabel);
 	LABEL_CHECK(ipqlabel, MAGIC_IPQ);
 	LABEL_CHECK(datagramlabel, MAGIC_MBUF);
 	COUNTER_INC(create_datagram_from_ipq);
@@ -964,7 +1011,10 @@
 mac_test_create_fragment(struct mbuf *datagram, struct label *datagramlabel,
     struct mbuf *fragment, struct label *fragmentlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_fragment "
+		"with datagramlabel and fragmentlabel:", 
+		strlen("mac_test_create_fragment with datagramlabel and fragmentlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(vnode,datagramlabel,vnode,fragmentlabel);
 	LABEL_CHECK(datagramlabel, MAGIC_MBUF);
 	LABEL_CHECK(fragmentlabel, MAGIC_MBUF);
 	COUNTER_INC(create_fragment);
@@ -974,7 +1024,10 @@
 static void
 mac_test_create_ifnet(struct ifnet *ifnet, struct label *ifnetlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_ifnet "
+		"with ifnetlabel:", 
+		strlen("mac_test_create_ifnet with ifnetlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL(ifnet,ifnetlabel);
 	LABEL_CHECK(ifnetlabel, MAGIC_IFNET);
 	COUNTER_INC(create_ifnet);
 }
@@ -984,7 +1037,10 @@
 mac_test_create_inpcb_from_socket(struct socket *so, struct label *solabel,
     struct inpcb *inp, struct label *inplabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_inpcb_from_socket "
+		"with solabel and inplabel:", 
+		strlen("mac_test_create_inpcb_from_socket with solabel and inplabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(socket, solabel, ifnet, inplabel);
 	LABEL_CHECK(solabel, MAGIC_SOCKET);
 	LABEL_CHECK(inplabel, MAGIC_INPCB);
 	COUNTER_INC(create_inpcb_from_socket);
@@ -995,7 +1051,10 @@
 mac_test_create_sysv_msgmsg(struct ucred *cred, struct msqid_kernel *msqkptr,
     struct label *msqlabel, struct msg *msgptr, struct label *msglabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_sysv_msgmsg "
+		"with cr_label msqlabel and msglabel:", 
+		strlen("mac_test_create_sysv_msgmsg with cr_label msqlabel and msglabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL3(cred, cred->cr_label, cred, msqlabel, cred, msglabel);
 	LABEL_CHECK(msglabel, MAGIC_SYSV_MSG);
 	LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ);
 	COUNTER_INC(create_sysv_msgmsg);
@@ -1006,7 +1065,10 @@
 mac_test_create_sysv_msgqueue(struct ucred *cred,
     struct msqid_kernel *msqkptr, struct label *msqlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_sysv_msgqueue "
+		"with msqlabel:", 
+		strlen("mac_test_create_sysv_msgqueue with msqlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL(vnode, msqlabel);
 	LABEL_CHECK(msqlabel, MAGIC_SYSV_MSQ);
 	COUNTER_INC(create_sysv_msgqueue);
 }
@@ -1016,7 +1078,10 @@
 mac_test_create_sysv_sem(struct ucred *cred, struct semid_kernel *semakptr,
     struct label *semalabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_sysv_sem "
+		"with cr_label and semalabel:", 
+		strlen("mac_test_create_sysv_sem with cr_label and semalabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred, cred->cr_label, vnode, semalabel);
 	LABEL_CHECK(semalabel, MAGIC_SYSV_SEM);
 	COUNTER_INC(create_sysv_sem);
 }
@@ -1026,7 +1091,10 @@
 mac_test_create_sysv_shm(struct ucred *cred, struct shmid_kernel *shmsegptr,
     struct label *shmlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_sysv_shm "
+		"with cr_label and shmlabel:", 
+		strlen("mac_test_create_sysv_shm with cr_label and shmlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(cred, cred->cr_label, vnode, shmlabel);
 	LABEL_CHECK(shmlabel, MAGIC_SYSV_SHM);
 	COUNTER_INC(create_sysv_shm);
 }
@@ -1036,7 +1104,10 @@
 mac_test_create_ipq(struct mbuf *fragment, struct label *fragmentlabel,
     struct ipq *ipq, struct label *ipqlabel)
 {
-
+	MACTEST_PIPE_SUBMIT_WITHPID("mac_test_create_ipq "
+		"with fragmentlabel and ipqlabel:", 
+		strlen("mac_test_create_ipq with fragmentlabel and ipqlabel:"));
+	MACTEST_PIPE_SUBMIT_LABEL2(vnode, fragmentlabel, vnode, ipqlabel);
 	LABEL_CHECK(fragmentlabel, MAGIC_MBUF);
 	LABEL_CHECK(ipqlabel, MAGIC_IPQ);
 	COUNTER_INC(create_ipq);
@@ -2360,7 +2431,8 @@
 {
 
 	if (vplabel != NULL && SLOT(vplabel) != MAGIC_MACTESTPIPE){
-		MACTEST_PIPE_SUBMIT_WITHPID("mac_test_check_vnode_read with cred label and vplabel:", 
+		MACTEST_PIPE_SUBMIT_WITHPID("mac_test_check_vnode_read "
+						"with cred label and vplabel:", 
 		strlen("mac_test_check_vnode_read with cred label and vplabel:"));
 		MACTEST_PIPE_SUBMIT_LABEL2(cred,active_cred->cr_label,vnode,vplabel);
 	}

==== //depot/projects/soc2007/zhouzhouyi_mactest_soc/zhouzhouyi_mactest_soc/sys/security/mac_test/mac_test_private.h#5 (text+ko) ====

@@ -24,7 +24,10 @@
 	buffer = malloc(256, M_MACTEST_PIPE, M_NOWAIT);			\
 	if (!buffer)							\
 		goto exit;						\
-        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);		\
+	if (!label)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);	\
 	strleng = strlen(buffer);					\
 	*(buffer + strleng) = '\n';					\
 	mactest_pipe_submit(buffer, strleng + 1);			\
@@ -46,13 +49,19 @@
 	buffer = malloc(256, M_MACTEST_PIPE, M_NOWAIT);			\
 	if (!buffer)							\
 		goto exit2;						\
-        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);		\
+	if (!label)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);	\
 	strleng = strlen(buffer);					\
 	mactest_pipe_submit(buffer, strleng);				\
 	mactest_pipe_submit(" ", 1);					\
 	strcpy(elements1, elements);					\
-        MAC_EXTERNALIZE(type1,label1, elements1, buffer, 256);		\
-	strleng = strlen(buffer);					\
+	if (!label1)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type1,label1, elements1, buffer, 256);	\
+        strleng = strlen(buffer);					\
 	*(buffer + strleng) = '\n';					\
 	mactest_pipe_submit(buffer, strleng + 1);			\
 	free(buffer, M_MACTEST_PIPE);					\
@@ -73,18 +82,27 @@
 	buffer = malloc(256, M_MACTEST_PIPE, M_NOWAIT);			\
 	if (!buffer)							\
 		goto exit4;						\
-        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);		\
-	strleng = strlen(buffer);					\
+	if (!label)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);	\
+        strleng = strlen(buffer);					\
 	mactest_pipe_submit(buffer, strleng);				\
 	mactest_pipe_submit(" ", 1);					\
 	strcpy(elements1, elements);					\
-        MAC_EXTERNALIZE(type1,label1, elements1, buffer, 256);		\
+	if (!label1)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type1,label1, elements1, buffer, 256);	\
 	strleng = strlen(buffer);					\
 	mactest_pipe_submit(buffer, strleng);				\
 	mactest_pipe_submit(" ", 1);					\
 	strcpy(elements1, elements);					\
-        MAC_EXTERNALIZE(type2,label2, elements1, buffer, 256);		\
-	strleng = strlen(buffer);					\
+	if (!label2)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type2,label2, elements1, buffer, 256);	\
+       	strleng = strlen(buffer);					\
 	*(buffer + strleng) = '\n';					\
 	mactest_pipe_submit(buffer, strleng + 1);			\
 	free(buffer, M_MACTEST_PIPE);					\
@@ -109,4 +127,56 @@
 	;								\
 }while(0)
 
+
+#define MACTEST_PIPE_SUBMIT_LABEL4(type,label,type1,label1,type2,label2,\
+	type3,label3)							\
+	do {							      	\
+	int error;							\
+	int strleng = 0;						\
+	char *buffer;							\
+	char *elements1 = malloc(256, M_MACTEST_PIPE, M_NOWAIT);	\
+	if (!elements1)							\
+		goto exit8;						\
+	strcpy(elements1, elements);					\
+	buffer = malloc(256, M_MACTEST_PIPE, M_NOWAIT);			\
+	if (!buffer)							\
+		goto exit7;						\
+	if (!label)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type,label, elements1, buffer, 256);	\
+	strleng = strlen(buffer);					\
+	mactest_pipe_submit(buffer, strleng);				\
+	mactest_pipe_submit(" ", 1);					\
+	strcpy(elements1, elements);					\
+	if (!label1)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type1,label1, elements1, buffer, 256);	\
+	strleng = strlen(buffer);					\
+	mactest_pipe_submit(buffer, strleng);				\
+	mactest_pipe_submit(" ", 1);					\
+	strcpy(elements1, elements);					\
+	if (!label2)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type2,label2, elements1, buffer, 256);	\
+	strleng = strlen(buffer);					\
+	mactest_pipe_submit(buffer, strleng);				\
+	mactest_pipe_submit(" ", 1);					\
+	strcpy(elements1, elements);					\
+	if (!label3)							\
+		strcpy(buffer,"NULL");					\
+	else								\
+	        MAC_EXTERNALIZE(type3,label3, elements1, buffer, 256);	\
+	strleng = strlen(buffer);					\
+	*(buffer + strleng) = '\n';					\
+	mactest_pipe_submit(buffer, strleng + 1);			\
+	free(buffer, M_MACTEST_PIPE);					\
+exit7:									\
+	free(elements1, M_MACTEST_PIPE);				\
+exit8:									\
+	;/*extra ; to avoid label at the end of compound statement*/	\
+}while(0)
+
 #endif /* ! _SECURITY_MAC_TEST_PRIVATE_H */


More information about the p4-projects mailing list