[SCM] UID Wrapper Repository - branch master updated
Andreas Schneider
asn at samba.org
Fri Jul 31 13:23:54 UTC 2015
The branch, master has been updated
via b41c6d9 tests: Add test_uwrap_syscall_setresuid()
via b1de1e9 tests: Fix syscall detection
via c0edc8f tests: Add test for syscall SYS_setresgid
via ddd8310 tests: Update to new cmocka test runner
via bb127f5 uwrap: Fix build if getres(uid|gid) are not available.
from 544a538 cmake: Drop test results via https.
https://git.samba.org/?p=uid_wrapper.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit b41c6d98229d97e3517179e49f655bd16e314193
Author: Andreas Schneider <asn at samba.org>
Date: Fri Jul 31 14:25:21 2015 +0200
tests: Add test_uwrap_syscall_setresuid()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit b1de1e9b55a99f5324875b3ba7e18037fe2906db
Author: Andreas Schneider <asn at samba.org>
Date: Fri Jul 31 14:11:45 2015 +0200
tests: Fix syscall detection
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit c0edc8f4ee88b59ecb8a24019a6915588ea74be9
Author: Andreas Schneider <asn at samba.org>
Date: Fri Jul 31 14:07:20 2015 +0200
tests: Add test for syscall SYS_setresgid
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit ddd831096360e9f3197a1d394c83c18da8590dbf
Author: Andreas Schneider <asn at samba.org>
Date: Fri Jul 31 14:03:19 2015 +0200
tests: Update to new cmocka test runner
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
commit bb127f58e468524b167a015b864ac3ba12e9c5ed
Author: Andreas Schneider <asn at samba.org>
Date: Fri Jan 23 16:01:49 2015 +0100
uwrap: Fix build if getres(uid|gid) are not available.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Michael Adam <obnox at samba.org>
-----------------------------------------------------------------------
Summary of changes:
src/uid_wrapper.c | 8 +--
tests/test_glibc_thread_support.c | 18 ++---
tests/test_uwrap_disabled.c | 30 +++++----
tests/test_uwrap_enabled.c | 6 +-
tests/testsuite.c | 138 +++++++++++++++++++++++++++++++-------
5 files changed, 148 insertions(+), 52 deletions(-)
Changeset truncated at 500 lines:
diff --git a/src/uid_wrapper.c b/src/uid_wrapper.c
index 1d49a85..a5e4fe5 100644
--- a/src/uid_wrapper.c
+++ b/src/uid_wrapper.c
@@ -1537,7 +1537,7 @@ static long int uwrap_syscall (long int sysno, va_list vp)
}
break;
#endif /* SYS_setresgid */
-#ifdef SYS_getresgid
+#if defined(SYS_getresgid) && defined(HAVE_GETRESGID)
case SYS_getresgid:
#ifdef HAVE_LINUX_32BIT_SYSCALLS
case SYS_getresgid32:
@@ -1550,7 +1550,7 @@ static long int uwrap_syscall (long int sysno, va_list vp)
rc = uwrap_getresgid(rgid, egid, sgid);
}
break;
-#endif /* SYS_getresgid */
+#endif /* SYS_getresgid && HAVE_GETRESGID */
/* uid */
case SYS_getuid:
@@ -1606,7 +1606,7 @@ static long int uwrap_syscall (long int sysno, va_list vp)
}
break;
#endif /* SYS_setresuid */
-#ifdef SYS_getresuid
+#if defined(SYS_getresuid) && defined(HAVE_GETRESUID)
case SYS_getresuid:
#ifdef HAVE_LINUX_32BIT_SYSCALLS
case SYS_getresuid32:
@@ -1619,7 +1619,7 @@ static long int uwrap_syscall (long int sysno, va_list vp)
rc = uwrap_getresuid(ruid, euid, suid);
}
break;
-#endif /* SYS_getresuid */
+#endif /* SYS_getresuid && HAVE_GETRESUID*/
/* groups */
case SYS_setgroups:
#ifdef HAVE_LINUX_32BIT_SYSCALLS
diff --git a/tests/test_glibc_thread_support.c b/tests/test_glibc_thread_support.c
index 31a7b7b..e902b0d 100644
--- a/tests/test_glibc_thread_support.c
+++ b/tests/test_glibc_thread_support.c
@@ -454,17 +454,17 @@ static void test_thread_create_thread_setgid(void **state)
int main(void) {
int rc;
- const UnitTest tests[] = {
- unit_test(test_syscall_setreuid),
- unit_test(test_sync_setreuid),
- unit_test(test_sync_setgid),
- unit_test(test_sync_setgid_syscall),
- unit_test(test_real_sync_setuid),
- unit_test(test_sync_setgroups),
- unit_test(test_thread_create_thread_setgid),
+ const struct CMUnitTest thread_tests[] = {
+ cmocka_unit_test(test_syscall_setreuid),
+ cmocka_unit_test(test_sync_setreuid),
+ cmocka_unit_test(test_sync_setgid),
+ cmocka_unit_test(test_sync_setgid_syscall),
+ cmocka_unit_test(test_real_sync_setuid),
+ cmocka_unit_test(test_sync_setgroups),
+ cmocka_unit_test(test_thread_create_thread_setgid),
};
- rc = run_tests(tests);
+ rc = cmocka_run_group_tests(thread_tests, NULL, NULL);
return rc;
}
diff --git a/tests/test_uwrap_disabled.c b/tests/test_uwrap_disabled.c
index f2336a4..c830e1d 100644
--- a/tests/test_uwrap_disabled.c
+++ b/tests/test_uwrap_disabled.c
@@ -23,7 +23,7 @@ struct test_opts {
gid_t nbgid;
};
-static void setup(void **state)
+static int setup(void **state)
{
struct test_opts *t;
struct passwd *pwd;
@@ -47,9 +47,11 @@ static void setup(void **state)
}
*state = t;
+
+ return 0;
}
-static void teardown(void **state)
+static int teardown(void **state)
{
struct test_opts *t = (struct test_opts *)*state;
@@ -59,6 +61,8 @@ static void teardown(void **state)
setegid(t->mygid);
free(t);
+
+ return 0;
}
static void test_uwrap_setuid(void **state)
@@ -235,27 +239,27 @@ int main(void)
{
int rc;
- const UnitTest tests[] = {
- unit_test_setup_teardown(test_uwrap_setuid, setup, teardown),
- unit_test_setup_teardown(test_uwrap_seteuid, setup, teardown),
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test_setup_teardown(test_uwrap_setuid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_seteuid, setup, teardown),
#ifdef HAVE_SETREUID
- unit_test_setup_teardown(test_uwrap_setreuid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setreuid, setup, teardown),
#endif
#ifdef HAVE_SETRESUID
- unit_test_setup_teardown(test_uwrap_setresuid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setresuid, setup, teardown),
#endif
- unit_test_setup_teardown(test_uwrap_setgid, setup, teardown),
- unit_test_setup_teardown(test_uwrap_setegid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setgid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setegid, setup, teardown),
#ifdef HAVE_SETREGID
- unit_test_setup_teardown(test_uwrap_setregid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setregid, setup, teardown),
#endif
#ifdef HAVE_SETRESGID
- unit_test_setup_teardown(test_uwrap_setresgid, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setresgid, setup, teardown),
#endif
- unit_test_setup_teardown(test_uwrap_setgroups, setup, teardown),
+ cmocka_unit_test_setup_teardown(test_uwrap_setgroups, setup, teardown),
};
- rc = run_tests(tests);
+ rc = cmocka_run_group_tests(tests, NULL, NULL);
return rc;
}
diff --git a/tests/test_uwrap_enabled.c b/tests/test_uwrap_enabled.c
index b0be077..9cc8387 100644
--- a/tests/test_uwrap_enabled.c
+++ b/tests/test_uwrap_enabled.c
@@ -22,11 +22,11 @@ static void test_uid_wrapper_enabled(void **state)
int main(void) {
int rc;
- const UnitTest tests[] = {
- unit_test(test_uid_wrapper_enabled),
+ const struct CMUnitTest tests[] = {
+ cmocka_unit_test(test_uid_wrapper_enabled),
};
- rc = run_tests(tests);
+ rc = cmocka_run_group_tests(tests, NULL, NULL);
return rc;
}
diff --git a/tests/testsuite.c b/tests/testsuite.c
index 38c9b77..332b73f 100644
--- a/tests/testsuite.c
+++ b/tests/testsuite.c
@@ -245,21 +245,68 @@ static void test_uwrap_syscall_setreuid(void **state)
(void) state; /* unused */
+#if defined(SYS_setreuid)
rc = syscall(SYS_setreuid, -1, 0);
+#elif defined(SYS_setreuid32)
+ rc = syscall(SYS_setreuid32, -1, 0);
+#endif
assert_int_equal(rc, 0);
u = geteuid();
-#ifdef SYS_geteuid /* not available on Solaris */
+#if defined(SYS_geteuid) /* not available on Solaris */
assert_int_equal(u, syscall(SYS_geteuid));
+#elif defined(SYS_geteuid32)
+ assert_int_equal(u, syscall(SYS_geteuid32));
#endif
+#if defined(SYS_setreuid)
rc = syscall(SYS_setreuid, -1, 42);
+#elif defined(SYS_setreuid32)
+ rc = syscall(SYS_setreuid32, -1, 42);
+#endif
assert_int_equal(rc, 0);
u = geteuid();
assert_int_equal(u, 42);
}
+static void test_uwrap_syscall_setresuid(void **state)
+{
+ long int rc;
+ uid_t u;
+ uid_t u_r, u_e, u_s;
+
+ (void) state; /* unused */
+
+ rc = syscall(SYS_setresuid, -1, 0, -1);
+ assert_int_equal(rc, 0);
+
+ u = geteuid();
+#if defined(SYS_getresuid) /* not available on Solaris */
+ rc = syscall(SYS_getresuid, &u_r, &u_e, &u_s);
+ assert_return_code(rc, errno);
+
+ assert_int_equal(u_r, 42);
+ assert_int_equal(u, u_e);
+#elif defined(SYS_getresuid32)
+ rc = syscall(SYS_getresuid32, &u_r, &u_e, &u_s);
+ assert_return_code(rc, errno);
+
+ assert_int_equal(u_r, 42);
+ assert_int_equal(u, u_e);
+#endif
+
+#if defined(SYS_setreuid)
+ rc = syscall(SYS_setreuid, -1, 42);
+#elif defined(SYS_setreuid)
+ rc = syscall(SYS_setreuid32, -1, 42);
+#endif
+ assert_return_code(rc, errno);
+
+ u = geteuid();
+ assert_int_equal(u, 42);
+}
+
static void test_uwrap_syscall_setregid(void **state)
{
long int rc;
@@ -267,18 +314,61 @@ static void test_uwrap_syscall_setregid(void **state)
(void) state; /* unused */
+#if defined(SYS_setregid)
rc = syscall(SYS_setregid, -1, 0);
+#elif defined(SYS_setregid32)
+ rc = syscall(SYS_setregid32, -1, 0);
+#endif
assert_int_equal(rc, 0);
g = getegid();
-#ifdef SYS_getegid /* Not available on Solaris */
+#if defined(SYS_getegid) /* Not available on Solaris */
assert_int_equal(g, syscall(SYS_getegid));
+#elif defined(SYS_getegid32)
+ assert_int_equal(g, syscall(SYS_getegid32));
#endif
+#if defined(SYS_setregid)
rc = syscall(SYS_setregid, -1, 42);
+#elif defined(SYS_setregid32)
+ rc = syscall(SYS_setregid32, -1, 42);
+#endif
+ assert_int_equal(rc, 0);
+
+ g = getegid();
+ assert_int_equal(g, 42);
+}
+
+static void test_uwrap_syscall_setresgid(void **state)
+{
+ long int rc;
+ gid_t g;
+ gid_t g_r, g_e, g_s;
+
+ (void) state; /* unused */
+
+ rc = syscall(SYS_setresgid, -1, 0, -1);
assert_int_equal(rc, 0);
g = getegid();
+#if defined(SYS_getresgid) /* Not available on Solaris */
+ rc = syscall(SYS_getresgid, &g_r, &g_e, &g_s);
+ assert_return_code(rc, errno);
+
+ assert_int_equal(g_r, 42);
+ assert_int_equal(g, g_e);
+#elif defined(SYS_getresgid32)
+ rc = syscall(SYS_getresgid32, &g_r, &g_e, &g_s);
+ assert_return_code(rc, errno);
+
+ assert_int_equal(g_r, 42);
+ assert_int_equal(g, g_e);
+#endif
+
+ rc = syscall(SYS_setregid, -1, 42);
+ assert_return_code(rc, errno);
+
+ g = getegid();
assert_int_equal(g, 42);
}
@@ -334,9 +424,9 @@ static void test_uwrap_syscall_setgroups(void **state)
(void) state; /* unused */
-#ifdef SYS_setgroups
+#if defined(SYS_setgroups)
rc = syscall(SYS_setgroups, ARRAY_SIZE(glist), glist);
-#elif SYS_setgroups32
+#elif defined (SYS_setgroups32)
rc = syscall(SYS_setgroups32, ARRAY_SIZE(glist), glist);
#endif
assert_int_equal(rc, 0);
@@ -348,9 +438,9 @@ static void test_uwrap_syscall_setgroups(void **state)
/* Drop all supplementary groups. This is often done by daemons */
memset(rlist, 0, sizeof(rlist));
-#ifdef SYS_setgroups
+#if defined(SYS_setgroups)
rc = syscall(SYS_setgroups, 0, NULL);
-#elif SYS_setgroups32
+#elif defined(SYS_setgroups32)
rc = syscall(SYS_setgroups32, 0, NULL);
#endif
assert_int_equal(rc, 0);
@@ -365,38 +455,40 @@ static void test_uwrap_syscall_setgroups(void **state)
int main(void) {
int rc;
- const UnitTest tests[] = {
- unit_test(test_uwrap_syscall),
- unit_test(test_uwrap_getgroups),
+ const struct CMUnitTest uwrap_tests[] = {
+ cmocka_unit_test(test_uwrap_syscall),
+ cmocka_unit_test(test_uwrap_getgroups),
- unit_test(test_uwrap_seteuid),
+ cmocka_unit_test(test_uwrap_seteuid),
#ifdef HAVE_SETREUID
- unit_test(test_uwrap_setreuid),
+ cmocka_unit_test(test_uwrap_setreuid),
#endif
#ifdef HAVE_SETRESUID
- unit_test(test_uwrap_setresuid),
+ cmocka_unit_test(test_uwrap_setresuid),
#endif
#ifdef HAVE_GETRESUID
- unit_test(test_uwrap_getresuid),
+ cmocka_unit_test(test_uwrap_getresuid),
#endif
- unit_test(test_uwrap_setuid),
- unit_test(test_uwrap_setegid),
+ cmocka_unit_test(test_uwrap_setuid),
+ cmocka_unit_test(test_uwrap_setegid),
#ifdef HAVE_SETREGID
- unit_test(test_uwrap_setregid),
+ cmocka_unit_test(test_uwrap_setregid),
#endif
#ifdef HAVE_SETRESGID
- unit_test(test_uwrap_setresgid),
+ cmocka_unit_test(test_uwrap_setresgid),
#endif
- unit_test(test_uwrap_setgid),
- unit_test(test_uwrap_syscall_setreuid),
- unit_test(test_uwrap_syscall_setregid),
- unit_test(test_uwrap_setgroups),
+ cmocka_unit_test(test_uwrap_setgid),
+ cmocka_unit_test(test_uwrap_syscall_setreuid),
+ cmocka_unit_test(test_uwrap_syscall_setresuid),
+ cmocka_unit_test(test_uwrap_syscall_setregid),
+ cmocka_unit_test(test_uwrap_syscall_setresgid),
+ cmocka_unit_test(test_uwrap_setgroups),
#if defined(SYS_setgroups) || defined(SYS_setroups32)
- unit_test(test_uwrap_syscall_setgroups),
+ cmocka_unit_test(test_uwrap_syscall_setgroups),
#endif
};
- rc = run_tests(tests);
+ rc = cmocka_run_group_tests(uwrap_tests, NULL, NULL);
return rc;
}
--
UID Wrapper Repository
More information about the samba-cvs
mailing list