diff mbox series

[1/1] msgrcv/msgrcv08.c: Use struct msgbuf defined in <sys/msg.h>

Message ID 20190320215707.30268-1-petr.vorel@gmail.com
State Superseded
Delegated to: Petr Vorel
Headers show
Series [1/1] msgrcv/msgrcv08.c: Use struct msgbuf defined in <sys/msg.h> | expand

Commit Message

Petr Vorel March 20, 2019, 9:57 p.m. UTC
which requires to define _GNU_SOURCE.
This fixes MUSL build.

NOTE: char array from struct has usually length 1, the one from test had 16,
but that's not a limitation.

Fixes: eccd238da ("ipc/msgrcv: add new testcase msgrcv08")

Reported-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
Hi Li,

what was the reason to use size 16?

Kind regards,
Petr

PS: I found and fix this error independently while working on MUSL build
fixes, but than found it was reported by Dengke Du in PR #177 [1].

[1] https://github.com/linux-test-project/ltp/pull/177/commits/87c4a4ae2817f835a594ab795dc938a27c642b92
---
 testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

Comments

Cyril Hrubis March 21, 2019, 9:51 a.m. UTC | #1
Hi!
> which requires to define _GNU_SOURCE.
> This fixes MUSL build.
> 
> NOTE: char array from struct has usually length 1, the one from test had 16,
> but that's not a limitation.
> 
> Fixes: eccd238da ("ipc/msgrcv: add new testcase msgrcv08")

It does not matter much here, but actually the structure is supposed to
be user defined, see the msgrcv manual page and you are supposed to pick
the message buffer length accordingly to your needs.

I guess that slightly better fix would be renaming the structure name,
the rest of the msgctl tests uses struct mbuf instead.
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c
index a757c0d18..21d77c9dd 100644
--- a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c
+++ b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c
@@ -35,6 +35,7 @@ 
  *      If this progarm is compiled as 64-bit application it works.
  */
 
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <string.h>
 #include <unistd.h>
@@ -48,11 +49,6 @@  const int TST_TOTAL = 1;
 
 #if __WORDSIZE == 32
 
-struct msgbuf {
-	long mtype;     /* message type, must be > 0 */
-	char mtext[16]; /* message data */
-};
-
 static void msr(int msqid)
 {
 	struct msgbuf msbs;