* [LTP] [PATCH v2 1/1] setgroups03: Fix running more iterations (-i 2)
@ 2021-10-04 8:40 Petr Vorel
2021-10-06 13:20 ` Cyril Hrubis
0 siblings, 1 reply; 3+ messages in thread
From: Petr Vorel @ 2021-10-04 8:40 UTC (permalink / raw)
To: ltp
From: Zhao Gongyi <zhaogongyi@huawei.com>
When run the test with option "-i 2", test will fail and
report "setgroups03.c:157: setgroups(65537) fails, Size
is > sysconf(_SC_NGROUPS_MAX), errno=1, expected errno=22".
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
[ pvorel: Add const char *uid parameter to use single function, use
SAFE_GETPWNAM() ]
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
.../kernel/syscalls/setgroups/setgroups03.c | 37 ++++++++-----------
1 file changed, 15 insertions(+), 22 deletions(-)
diff --git a/testcases/kernel/syscalls/setgroups/setgroups03.c b/testcases/kernel/syscalls/setgroups/setgroups03.c
index 490b06996..ecf335a3a 100644
--- a/testcases/kernel/syscalls/setgroups/setgroups03.c
+++ b/testcases/kernel/syscalls/setgroups/setgroups03.c
@@ -73,11 +73,9 @@
#include <grp.h>
#include "test.h"
-
+#include "safe_macros.h"
#include "compat_16.h"
-#define TESTUSER "nobody"
-
char nobody_uid[] = "nobody";
struct passwd *ltpuser;
@@ -86,7 +84,7 @@ int TST_TOTAL = 2;
GID_T *groups_list; /* Array to hold gids for getgroups() */
-int setup1(); /* setup function to test error EPERM */
+void setup1(const char *uid); /* setup function to test error EPERM */
void setup(); /* setup function for the test */
void cleanup(); /* cleanup function for the test */
@@ -95,7 +93,7 @@ struct test_case_t { /* test case struct. to hold ref. test cond's */
int list;
char *desc;
int exp_errno;
- int (*setupfunc) ();
+ void (*setupfunc)(const char *uid);
} Test_cases[] = {
{
1, 1, "Size is > sysconf(_SC_NGROUPS_MAX)", EINVAL, NULL}, {
@@ -126,7 +124,7 @@ int main(int ac, char **av)
for (i = 0; i < TST_TOTAL; i++) {
if (Test_cases[i].setupfunc != NULL) {
- Test_cases[i].setupfunc();
+ Test_cases[i].setupfunc(nobody_uid);
}
gidsetsize = ngroups_max + Test_cases[i].gsize_add;
@@ -156,8 +154,11 @@ int main(int ac, char **av)
gidsetsize, test_desc, TEST_ERRNO,
Test_cases[i].exp_errno);
}
- }
+ if (Test_cases[i].setupfunc != NULL) {
+ Test_cases[i].setupfunc("root");
+ }
+ }
}
cleanup();
@@ -177,7 +178,6 @@ void setup(void)
tst_sig(NOFORK, DEF_HANDLER, cleanup);
TEST_PAUSE;
-
}
/*
@@ -187,29 +187,22 @@ void setup(void)
* Get the user info. from /etc/passwd file.
* This function returns 0 on success.
*/
-int setup1(void)
+void setup1(const char *uid)
{
- struct passwd *user_info; /* struct. to hold test user info */
-
-/* Switch to nobody user for correct error code collection */
- ltpuser = getpwnam(nobody_uid);
- if (seteuid(ltpuser->pw_uid) == -1) {
- tst_resm(TINFO, "setreuid failed to "
- "to set the effective uid to %d", ltpuser->pw_uid);
- perror("setreuid");
- }
+ struct passwd *user_info;
- if ((user_info = getpwnam(TESTUSER)) == NULL) {
- tst_brkm(TFAIL, cleanup, "getpwnam(2) of %s Failed", TESTUSER);
- }
+ ltpuser = SAFE_GETPWNAM(cleanup, uid);
+ SAFE_SETEUID(cleanup, ltpuser->pw_uid);
+
+ user_info = SAFE_GETPWNAM(cleanup, uid);
if (!GID_SIZE_CHECK(user_info->pw_gid)) {
tst_brkm(TBROK,
cleanup,
"gid returned from getpwnam is too large for testing setgroups16");
}
+
groups_list[0] = user_info->pw_gid;
- return 0;
}
/*
--
2.33.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH v2 1/1] setgroups03: Fix running more iterations (-i 2)
2021-10-04 8:40 [LTP] [PATCH v2 1/1] setgroups03: Fix running more iterations (-i 2) Petr Vorel
@ 2021-10-06 13:20 ` Cyril Hrubis
2021-10-06 18:44 ` Petr Vorel
0 siblings, 1 reply; 3+ messages in thread
From: Cyril Hrubis @ 2021-10-06 13:20 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
Hi!
> + ltpuser = SAFE_GETPWNAM(cleanup, uid);
> + SAFE_SETEUID(cleanup, ltpuser->pw_uid);
Can we please push the GETPWNAM() to the test setup and pass only uid to
the test setup functions?
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [LTP] [PATCH v2 1/1] setgroups03: Fix running more iterations (-i 2)
2021-10-06 13:20 ` Cyril Hrubis
@ 2021-10-06 18:44 ` Petr Vorel
0 siblings, 0 replies; 3+ messages in thread
From: Petr Vorel @ 2021-10-06 18:44 UTC (permalink / raw)
To: Cyril Hrubis; +Cc: ltp
> Hi!
> > + ltpuser = SAFE_GETPWNAM(cleanup, uid);
> > + SAFE_SETEUID(cleanup, ltpuser->pw_uid);
> Can we please push the GETPWNAM() to the test setup and pass only uid to
> the test setup functions?
Ah, sure, sorry for overlooking obvious improvement.
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-10-06 18:45 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-04 8:40 [LTP] [PATCH v2 1/1] setgroups03: Fix running more iterations (-i 2) Petr Vorel
2021-10-06 13:20 ` Cyril Hrubis
2021-10-06 18:44 ` Petr Vorel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.