Re: [LTP] [PATCH 1/2] msgrcv07: Check negative msg type filters

Richard Palethorpe
2021-10-11T08:50:00Z

Hello,

Cyril Hrubis <chrubis@suse.cz> writes:

> Hi!
> I guess that it would make more sense to add this to the msgrcv02.c as:
>
> diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv02.c
> index cfb7d7446..b305d1f92 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>
> @@ -35,10 +37,12 @@ static int queue_id = -1;
> static int bad_id = -1;
> struct passwd *pw;
>
> +#define MSGTYP 2
> +
> static struct buf {
> long type;
> char mtext[MSGSIZE];
> -} rcv_buf, snd_buf = {MSGTYPE, "hello"};
> +} rcv_buf, snd_buf = {MSGTYP, "hello"};
>
> static struct tcase {
> int *id;
> @@ -49,12 +53,14 @@ 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, 4, MSGTYP, 0, 0, E2BIG},
> + {&queue_id, &rcv_buf, MSGSIZE, MSGTYP, 0, 1, EACCES},
> + {&queue_id, NULL, MSGSIZE, MSGTYP, 0, 0, EFAULT},
> + {&bad_id, &rcv_buf, MSGSIZE, MSGTYP, 0, 0, EINVAL},
> + {&queue_id, &rcv_buf, -1, MSGTYP, 0, 0, EINVAL},
> + {&queue_id, &rcv_buf, MSGSIZE, MSGTYP+1, 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},
> };
>
>
> What do you think?

I don't know, the functionality in each test seems arbitrary. I would be
happy with either patch.

--
Thank you,
Richard.