diff options
author | jkim <jkim@FreeBSD.org> | 2006-11-16 19:51:10 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2006-11-16 19:51:10 +0000 |
commit | be0e24cc9d143576b2108431fb34ee33da5795e8 (patch) | |
tree | bed2d356ab28b268d5b9ef6d983e287851f3522a /tools | |
parent | 053d92d4b0f07bab50367e0c2da1e2a947556c7f (diff) | |
download | FreeBSD-src-be0e24cc9d143576b2108431fb34ee33da5795e8.zip FreeBSD-src-be0e24cc9d143576b2108431fb34ee33da5795e8.tar.gz |
Fix message size tests for msgsnd(3) and msgrcv(3). msgsz is the length of
actual message and it should not include size of message type.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/regression/sysvmsg/msgtest.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/tools/regression/sysvmsg/msgtest.c b/tools/regression/sysvmsg/msgtest.c index 37981d9..9aff817 100644 --- a/tools/regression/sysvmsg/msgtest.c +++ b/tools/regression/sysvmsg/msgtest.c @@ -177,10 +177,11 @@ main(int argc, char *argv[]) */ m.mtype = MTYPE_1; strcpy(m.mtext, m1_str); - if (msgsnd(sender_msqid, &m, sizeof(m), 0) == -1) + if (msgsnd(sender_msqid, &m, strlen(m1_str) + 1, 0) == -1) err(1, "sender: msgsnd 1"); - if (msgrcv(sender_msqid, &m, sizeof(m), MTYPE_1_ACK, 0) != sizeof(m)) + if (msgrcv(sender_msqid, &m, sizeof(m.mtext), MTYPE_1_ACK, 0) != + strlen(m1_str) + 1) err(1, "sender: msgrcv 1 ack"); print_msqid_ds(&m_ds, 0600); @@ -190,10 +191,11 @@ main(int argc, char *argv[]) */ m.mtype = MTYPE_2; strcpy(m.mtext, m2_str); - if (msgsnd(sender_msqid, &m, sizeof(m), 0) == -1) + if (msgsnd(sender_msqid, &m, strlen(m2_str) + 1, 0) == -1) err(1, "sender: msgsnd 2"); - if (msgrcv(sender_msqid, &m, sizeof(m), MTYPE_2_ACK, 0) != sizeof(m)) + if (msgrcv(sender_msqid, &m, sizeof(m.mtext), MTYPE_2_ACK, 0) != + strlen(m2_str) + 1) err(1, "sender: msgrcv 2 ack"); /* @@ -315,7 +317,8 @@ receiver() * Receive the first message, print it, and send an ACK. */ - if (msgrcv(msqid, &m, sizeof(m), MTYPE_1, 0) != sizeof(m)) + if (msgrcv(msqid, &m, sizeof(m.mtext), MTYPE_1, 0) != + strlen(m1_str) + 1) err(1, "receiver: msgrcv 1"); printf("%s\n", m.mtext); @@ -324,14 +327,15 @@ receiver() m.mtype = MTYPE_1_ACK; - if (msgsnd(msqid, &m, sizeof(m), 0) == -1) + if (msgsnd(msqid, &m, strlen(m1_str) + 1, 0) == -1) err(1, "receiver: msgsnd ack 1"); /* * Receive the second message, print it, and send an ACK. */ - if (msgrcv(msqid, &m, sizeof(m), MTYPE_2, 0) != sizeof(m)) + if (msgrcv(msqid, &m, sizeof(m.mtext), MTYPE_2, 0) != + strlen(m2_str) + 1) err(1, "receiver: msgrcv 2"); printf("%s\n", m.mtext); @@ -340,7 +344,7 @@ receiver() m.mtype = MTYPE_2_ACK; - if (msgsnd(msqid, &m, sizeof(m), 0) == -1) + if (msgsnd(msqid, &m, strlen(m2_str) + 1, 0) == -1) err(1, "receiver: msgsnd ack 2"); exit(0); |