[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