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