[SCM] UID Wrapper Repository - branch master updated

Andreas Schneider asn at samba.org
Mon Nov 8 14:48:32 UTC 2021


The branch, master has been updated
       via  f48c658 tests: fix unused-result error in tests/test_uwrap_disabled.c
       via  9c12a53 tests: fix unused-result error in tests/test_setresgid_unprivileged.c
       via  df5a03e uid_wrapper.c: fall back to pragma init/fini for constructor/destructor if possible
       via  c011b31 configure: check for pragma init/fini for constructors/destructors
      from  c95573e gitlab-ci: Add Ubuntu runner

https://git.samba.org/?p=uid_wrapper.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit f48c65812849e0564d66569836f3ee73e58574a2
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Oct 30 18:18:05 2020 +0100

    tests: fix unused-result error in tests/test_uwrap_disabled.c
    
    Signed-off-by: Bjoern Jacke <bjacke at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit 9c12a53610b4620be4ad96bae1af855eb4e0abdf
Author: Björn Jacke <bj at sernet.de>
Date:   Fri Oct 30 18:03:08 2020 +0100

    tests: fix unused-result error in tests/test_setresgid_unprivileged.c
    
    Signed-off-by: Bjoern Jacke <bjacke at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit df5a03ef37c8305384d304a357da8a10c1e8edda
Author: Björn Jacke <bjacke at samba.org>
Date:   Fri Oct 30 15:23:02 2020 +0100

    uid_wrapper.c: fall back to pragma init/fini for constructor/destructor if possible
    
    Signed-off-by: Bjoern Jacke <bjacke at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

commit c011b319f7bf953e577a65ea18b9491d8cc9354c
Author: Björn Jacke <bjacke at samba.org>
Date:   Fri Oct 30 15:05:36 2020 +0100

    configure: check for pragma init/fini for constructors/destructors
    
    Signed-off-by: Bjoern Jacke <bjacke at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 ConfigureChecks.cmake               | 26 ++++++++++++++++++++++++++
 config.h.cmake                      |  2 ++
 src/uid_wrapper.c                   |  7 +++++++
 tests/test_setresgid_unprivileged.c |  9 ++++++---
 tests/test_uwrap_disabled.c         | 13 +++++++++----
 5 files changed, 50 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index 0e2d84f..930904e 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -163,6 +163,32 @@ int main(void) {
     return 0;
 }" HAVE_DESTRUCTOR_ATTRIBUTE)
 
+check_c_source_compiles("
+#pragma init (test_constructor)
+void test_constructor(void);
+
+void test_constructor(void)
+{
+     return;
+}
+
+int main(void) {
+     return 0;
+}" HAVE_PRAGMA_INIT)
+
+check_c_source_compiles("
+#pragma fini (test_destructor)
+void test_destructor(void);
+
+void test_destructor(void)
+{
+    return;
+}
+
+int main(void) {
+    return 0;
+}" HAVE_PRAGMA_FINI)
+
 # If this produces a warning treat it as error!
 set(CMAKE_REQUIRED_FLAGS "-Werror")
 check_c_source_compiles("
diff --git a/config.h.cmake b/config.h.cmake
index a3f3815..8e05723 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -61,6 +61,8 @@
 #cmakedefine HAVE_GCC_ATOMIC_BUILTINS 1
 #cmakedefine HAVE_CONSTRUCTOR_ATTRIBUTE 1
 #cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1
+#cmakedefine HAVE_PRAGMA_INIT 1
+#cmakedefine HAVE_PRAGMA_FINI 1
 #cmakedefine HAVE_ADDRESS_SANITIZER_ATTRIBUTE 1
 #cmakedefine HAVE_FUNCTION_ATTRIBUTE_FORMAT 1
 #cmakedefine HAVE_FALLTHROUGH_ATTRIBUTE 1
diff --git a/src/uid_wrapper.c b/src/uid_wrapper.c
index 6e4a6da..4d31f52 100644
--- a/src/uid_wrapper.c
+++ b/src/uid_wrapper.c
@@ -374,7 +374,14 @@ static pthread_mutex_t libpthread_symbol_binding_mutex = PTHREAD_MUTEX_INITIALIZ
  *********************************************************/
 
 bool uid_wrapper_enabled(void);
+#if ! defined(HAVE_CONSTRUCTOR_ATTRIBUTE) && defined(HAVE_PRAGMA_INIT)
+/* xlC and other oldschool compilers support (only) this */
+#pragma init (uwrap_constructor)
+#endif
 void uwrap_constructor(void) CONSTRUCTOR_ATTRIBUTE;
+#if ! defined(HAVE_DESTRUCTOR_ATTRIBUTE) && defined(HAVE_PRAGMA_FINI)
+#pragma fini (uwrap_destructor)
+#endif
 void uwrap_destructor(void) DESTRUCTOR_ATTRIBUTE;
 
 /*********************************************************
diff --git a/tests/test_setresgid_unprivileged.c b/tests/test_setresgid_unprivileged.c
index 121c2cc..1383d29 100644
--- a/tests/test_setresgid_unprivileged.c
+++ b/tests/test_setresgid_unprivileged.c
@@ -74,7 +74,8 @@ static void test_uwrap_setresgid_unprivileged_uid(void **state)
 	assert_int_equal(cp_egid, 0x0);
 	assert_int_equal(cp_sgid, 0x0);
 
-	setresuid(0x0, 0x0, 0x0);
+	rc = setresuid(0x0, 0x0, 0x0);
+	assert_int_equal(rc, 0x0);
 }
 
 static void test_uwrap_setresgid_unprivileged_uid_and_gid(void **state)
@@ -129,8 +130,10 @@ static void test_uwrap_setresgid_unprivileged_uid_and_gid(void **state)
 	assert_int_equal(rc, -1);
 	assert_int_equal(errno, EPERM);
 
-	setresuid(0x0, 0x0, 0x0);
-	setresgid(0x0, 0x0, 0x0);
+	rc = setresuid(0x0, 0x0, 0x0);
+	assert_int_equal(rc, 0x0);
+	rc = setresgid(0x0, 0x0, 0x0);
+	assert_int_equal(rc, 0x0);
 }
 
 int main(void) {
diff --git a/tests/test_uwrap_disabled.c b/tests/test_uwrap_disabled.c
index c830e1d..52a2bf0 100644
--- a/tests/test_uwrap_disabled.c
+++ b/tests/test_uwrap_disabled.c
@@ -53,12 +53,17 @@ static int setup(void **state)
 
 static int teardown(void **state)
 {
+	int rc;
 	struct test_opts *t = (struct test_opts *)*state;
 
-	setuid(t->myuid);
-	seteuid(t->myuid);
-	setgid(t->mygid);
-	setegid(t->mygid);
+	rc = setuid(t->myuid);
+	assert_int_equal(rc, 0x0);
+	rc = seteuid(t->myuid);
+	assert_int_equal(rc, 0x0);
+	rc = setgid(t->mygid);
+	assert_int_equal(rc, 0x0);
+	rc = setegid(t->mygid);
+	assert_int_equal(rc, 0x0);
 
 	free(t);
 


-- 
UID Wrapper Repository



More information about the samba-cvs mailing list