Date: Fri, 15 Jun 2007 03:41:25 GMT From: Zhouyi ZHOU <zhouzhouyi@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 121671 for review Message-ID: <200706150341.l5F3fPZE035074@repoman.freebsd.org>
index | next in thread | raw e-mail
http://perforce.freebsd.org/chv.cgi?CH=121671 Change 121671 by zhouzhouyi@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 */help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706150341.l5F3fPZE035074>
