[LTP] [PATCH] msgrcv02: Add negative msgtyp tests
Richard Palethorpe
rpalethorpe@suse.com
Tue Oct 12 11:28:58 CEST 2021
Test that we do not get higher message types. Also that -1 msgtyp is not
misinterpreted as INT_MAX by using MSG_EXCEPT.
Signed-off-by: Richard Palethorpe <rpalethorpe@suse.com>
Suggested-by: Cyril Hrubis <chrubis@suse.cz>
---
.../kernel/syscalls/ipc/msgrcv/msgrcv02.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c
index cfb7d7446..fba6a5289 100644
--- a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c
+++ b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c
@@ -21,6 +21,8 @@
* msgflg and no message of the requested type existed on the message queue.
*/
+#define _GNU_SOURCE
+
#include <string.h>
#include <sys/wait.h>
#include <sys/msg.h>
@@ -38,7 +40,7 @@ struct passwd *pw;
static struct buf {
long type;
char mtext[MSGSIZE];
-} rcv_buf, snd_buf = {MSGTYPE, "hello"};
+} rcv_buf, snd_buf = {2, "hello"};
static struct tcase {
int *id;
@@ -49,12 +51,15 @@ static struct tcase {
int exp_user;
int exp_err;
} tcases[] = {
- {&queue_id, &rcv_buf, 4, 1, 0, 0, E2BIG},
- {&queue_id, &rcv_buf, MSGSIZE, 1, 0, 1, EACCES},
- {&queue_id, NULL, MSGSIZE, 1, 0, 0, EFAULT},
- {&bad_id, &rcv_buf, MSGSIZE, 1, 0, 0, EINVAL},
- {&queue_id, &rcv_buf, -1, 1, 0, 0, EINVAL},
- {&queue_id, &rcv_buf, MSGSIZE, 2, IPC_NOWAIT, 0, ENOMSG},
+ {&queue_id, &rcv_buf, MSGSIZE - 1, 2, 0, 0, E2BIG},
+ {&queue_id, &rcv_buf, MSGSIZE, 2, 0, 1, EACCES},
+ {&queue_id, NULL, MSGSIZE, 2, 0, 0, EFAULT},
+ {&bad_id, &rcv_buf, MSGSIZE, 2, 0, 0, EINVAL},
+ {&queue_id, &rcv_buf, -1, 2, 0, 0, EINVAL},
+
+ {&queue_id, &rcv_buf, MSGSIZE, 3, IPC_NOWAIT, 0, ENOMSG},
+ {&queue_id, &rcv_buf, MSGSIZE, -1, IPC_NOWAIT, 0, ENOMSG},
+ {&queue_id, &rcv_buf, MSGSIZE, -1, IPC_NOWAIT | MSG_EXCEPT, 0, ENOMSG},
};
static void verify_msgrcv(struct tcase *tc)
--
2.33.0
More information about the ltp
mailing list