[LTP] [PATCH v5 4/8] syscalls/mknod04: Convert to new API

Ricardo B. Marlière rbm@suse.com
Fri Jun 6 13:31:48 CEST 2025


On Fri Jun 6, 2025 at 8:27 AM -03, Petr Vorel wrote:
> Hi Ricardo,
>
> ...
>> -#define MODE_RWX	S_IFIFO | S_IRWXU | S_IRWXG | S_IRWXO
>
> Similarly, to what I noted to mknod03.c in v4:
> https://lore.kernel.org/ltp/20250605073231.GC1190804@pevik/

Exactly!

>
> Originally here was also S_IFIFO (used for both mkdir() and mknod()). Although
> the tests "works" IMHO we should use mknod() with S_IFIFO (and I believe it's
> not needed for mkdir().
>
>> -#define MODE_SGID       S_IFIFO | S_ISGID | S_IRWXU | S_IRWXG | S_IRWXO
>
>> +#define MODE_RWX 0777
> But you omit it.
>
>> +#define MODE_SGID (S_ISGID | 0777)
> ...
>> -		/*
>> -		 * TEST CASE CONDITION:
>> -		 *  Attempt to create a filesystem node on a directory
>> -		 *  with group id (sgid) bit set such that,
>> -		 *  the node created by mknod(2) should not have group id
>> -		 *  (sgid) bit set and node's gid should be equal to the
>> -		 *  effective gid of the process.
>> -		 */
>> -		TEST(mknod(node_name, MODE_RWX, 0));
>> +	SAFE_MKNOD(TEMP_NODE, MODE_RWX, 0);
>
> I vote for following diff (no need to repost).

Thanks!

>
> Kind regards,
> Petr
>
> +++ testcases/kernel/syscalls/mknod/mknod04.c
> @@ -17,6 +17,7 @@
>  #include "tst_test.h"
>  
>  #define MODE_RWX 0777
> +#define MODE_FIFO (S_IFIFO | 0777)
>  #define MODE_SGID (S_ISGID | 0777)
>  
>  #define TEMP_DIR "testdir"
> @@ -29,7 +30,7 @@ static void run(void)
>  {
>  	struct stat buf;
>  
> -	SAFE_MKNOD(TEMP_NODE, MODE_RWX, 0);
> +	SAFE_MKNOD(TEMP_NODE, MODE_FIFO, 0);
>  
>  	SAFE_STAT(TEMP_NODE, &buf);
>  	TST_EXP_EQ_LI(buf.st_mode & S_ISGID, 0);

Can you please also apply this one:

diff --git a/testcases/kernel/syscalls/mknod/mknod05.c b/testcases/kernel/syscalls/mknod/mknod05.c
index 4b7e9577266e..34611b57ee92 100644
--- a/testcases/kernel/syscalls/mknod/mknod05.c
+++ b/testcases/kernel/syscalls/mknod/mknod05.c
@@ -18,6 +18,7 @@
 
 #define MODE_RWX 0777
 #define MODE_SGID (S_ISGID | 0777)
+#define MODE_FIFO_SGID (S_IFIFO | S_ISGID | 0777)
 
 #define TEMP_DIR "testdir"
 #define TEMP_NODE TEMP_DIR "/testnode"
@@ -29,7 +30,7 @@ static void run(void)
 {
 	struct stat buf;
 
-	SAFE_MKNOD(TEMP_NODE, MODE_SGID, 0);
+	SAFE_MKNOD(TEMP_NODE, MODE_FIFO_SGID, 0);
 
 	SAFE_STAT(TEMP_NODE, &buf);
 	TST_EXP_EQ_LI(buf.st_mode & S_ISGID, S_ISGID);

Thanks a lot,
RBM


More information about the ltp mailing list