[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