[LTP] [PATCH v4 1/3] syscalls/creat09: Add umask test condition
Cyril Hrubis
chrubis@suse.cz
Wed Sep 14 13:28:20 CEST 2022
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.
> 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
>
--
Cyril Hrubis
chrubis@suse.cz
More information about the ltp
mailing list