[LTP] [PATCH v4 1/3] syscalls/creat09: Add umask test condition

xuyang2018.jy@fujitsu.com xuyang2018.jy@fujitsu.com
Thu Sep 15 02:37:33 CEST 2022


Hi Cyril

> Hi!
>> diff --git a/testcases/kernel/syscalls/creat/creat09.c b/testcases/kernel/syscalls/creat/creat09.c
>> index bed7bddb0..d583cceca 100644
>> --- a/testcases/kernel/syscalls/creat/creat09.c
>> +++ b/testcases/kernel/syscalls/creat/creat09.c
>> @@ -28,6 +28,16 @@
>>    *  Date:   Fri Jan 22 16:48:18 2021 -0800
>>    *
>>    *  xfs: fix up non-directory creation in SGID directories
>> + *
>> + * When use acl or umask, it still has bug.
>> + *
>> + * Fixed in:
>> + *
>> + *  commit 1639a49ccdce58ea248841ed9b23babcce6dbb0b
>> + *  Author: Yang Xu <xuyang2018.jy@fujitsu.com>
>> + *  Date:   Thu July 14 14:11:27 2022 +0800
>> + *
>> + *  fs: move S_ISGID stripping into the vfs_*() helpers
>>    */
>>   
>>   #include <stdlib.h>
>> @@ -47,6 +57,14 @@
>>   static gid_t free_gid;
>>   static int fd = -1;
>>   
>> +static struct tcase {
>> +	const char *msg;
>> +	int mask;
>> +} tcases[] = {
>> +	{"under umask(0) situation", 0},
>> +	{"under umask(S_IXGRP) situation", S_IXGRP}
>> +};
>> +
>>   static void setup(void)
>>   {
>>   	struct stat buf;
>> @@ -94,8 +112,14 @@ static void file_test(const char *name)
>>   		tst_res(TPASS, "%s: Setgid bit not set", name);
>>   }
>>   
>> -static void run(void)
>> +static void run(unsigned int n)
>>   {
>> +	struct tcase *tc = &tcases[n];
>> +
>> +	umask(tc->mask);
>> +	tst_res(TINFO, "Testing setgid behaviour when creating file %s",
>> +			tc->msg);
> 
> This can be shorter and more to the point, something as:
> 
> 	tst_res(TINFO, "File created with %s", tc->msg);
> 
> And the msg could be just "umask(0)" and "umask(S_IXGRP)".
> 
> 
> Otherwise it's fine and I can fix the messages before applying if you
> want.

Yes.  Please apply it with fix the messages. Thanks.


Best Regards
Yang Xu
> 
>>   	fd = SAFE_CREAT(CREAT_FILE, MODE_SGID);
>>   	SAFE_CLOSE(fd);
>>   	file_test(CREAT_FILE);
>> @@ -115,13 +139,14 @@ static void cleanup(void)
>>   }
>>   
>>   static struct tst_test test = {
>> -	.test_all = run,
>> +	.test = run,
>>   	.setup = setup,
>>   	.cleanup = cleanup,
>>   	.needs_root = 1,
>>   	.all_filesystems = 1,
>>   	.mount_device = 1,
>>   	.mntpoint = MNTPOINT,
>> +	.tcnt = ARRAY_SIZE(tcases),
>>   	.skip_filesystems = (const char*[]) {
>>   		"exfat",
>>   		"ntfs",
>> @@ -132,6 +157,7 @@ static struct tst_test test = {
>>   		{"linux-git", "0fa3ecd87848"},
>>   		{"CVE", "2018-13405"},
>>   		{"linux-git", "01ea173e103e"},
>> +		{"linux-git", "1639a49ccdce"},
>>   		{}
>>   	},
>>   };
>> -- 
>> 2.23.0
>>
> 


More information about the ltp mailing list