Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nss_wrapper for openSUSE:Factory 
checked in at 2022-06-25 10:23:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nss_wrapper (Old)
 and      /work/SRC/openSUSE:Factory/.nss_wrapper.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nss_wrapper"

Sat Jun 25 10:23:51 2022 rev:14 rq:984842 version:1.1.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/nss_wrapper/nss_wrapper.changes  2021-04-12 
12:33:43.649050593 +0200
+++ /work/SRC/openSUSE:Factory/.nss_wrapper.new.1548/nss_wrapper.changes        
2022-06-25 10:23:56.626646475 +0200
@@ -1,0 +2,9 @@
+Fri Jun 24 08:14:05 UTC 2022 - Andreas Schneider <[email protected]>
+
+- Update to version 1.1.12
+  * Added (de)contructor support on AIX with pragma init/finish
+  * Fixed possible crash in getaddrinfo()
+  * Fixed issues with processes closing all fds when forking
+  * Fixed issues with setgrent() and endpwent() nss module support
+
+-------------------------------------------------------------------

Old:
----
  nss_wrapper-1.1.11.tar.gz
  nss_wrapper-1.1.11.tar.gz.asc

New:
----
  nss_wrapper-1.1.12.tar.gz
  nss_wrapper-1.1.12.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nss_wrapper.spec ++++++
--- /var/tmp/diff_new_pack.AwQqrK/_old  2022-06-25 10:23:57.862648240 +0200
+++ /var/tmp/diff_new_pack.AwQqrK/_new  2022-06-25 10:23:57.866648245 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package nss_wrapper
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
 #
 ############################# NOTE ##################################
 Name:           nss_wrapper
-Version:        1.1.11
+Version:        1.1.12
 Release:        0
 Summary:        A wrapper for the user, group and hosts NSS API
 License:        BSD-3-Clause

++++++ nss_wrapper-1.1.11.tar.gz -> nss_wrapper-1.1.12.tar.gz ++++++
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/nss_nwrap.c.6CD8D6240BEF45A7.idx and 
new/nss_wrapper-1.1.12/.cache/clangd/index/nss_nwrap.c.6CD8D6240BEF45A7.idx 
differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/nss_wrapper.c.496306141B70693D.idx 
and 
new/nss_wrapper-1.1.12/.cache/clangd/index/nss_wrapper.c.496306141B70693D.idx 
differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_getaddrinfo.c.641BB471F444137A.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_getaddrinfo.c.641BB471F444137A.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_gethostby_name_addr.c.C9C460E7372D7C61.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_gethostby_name_addr.c.C9C460E7372D7C61.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_gethostent.c.FDE119456A174D8F.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_gethostent.c.FDE119456A174D8F.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_getnameinfo.c.779E41D17A149E05.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_getnameinfo.c.779E41D17A149E05.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_getpwuid_module.c.13413495523E694E.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_getpwuid_module.c.13413495523E694E.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_nwrap_disabled.c.59E63F9B2D58E517.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_nwrap_disabled.c.59E63F9B2D58E517.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_nwrap_vector.c.6DA36926E43E358A.idx
 and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_nwrap_vector.c.6DA36926E43E358A.idx
 differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/test_shadow.c.85DFA55943F2551B.idx 
and 
new/nss_wrapper-1.1.12/.cache/clangd/index/test_shadow.c.85DFA55943F2551B.idx 
differ
Binary files 
old/nss_wrapper-1.1.11/.cache/clangd/index/testsuite.c.AF64C06B860D31A7.idx and 
new/nss_wrapper-1.1.12/.cache/clangd/index/testsuite.c.AF64C06B860D31A7.idx 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nss_wrapper-1.1.11/CHANGELOG 
new/nss_wrapper-1.1.12/CHANGELOG
--- old/nss_wrapper-1.1.11/CHANGELOG    2020-04-02 12:21:24.000000000 +0200
+++ new/nss_wrapper-1.1.12/CHANGELOG    2022-06-24 10:09:57.000000000 +0200
@@ -1,6 +1,12 @@
 ChangeLog
 ==========
 
+version 1.1.12 (released 2022-06-24)
+  * Added (de)contructor support on AIX with pragma init/finish
+  * Fixed possible crash in getaddrinfo()
+  * Fixed issues with processes closing all fds when forking
+  * Fixed issues with setgrent() and endpwent() nss module support
+
 version 1.1.11 (released 2020-04-02)
   * Fixed strict aliasing issues on armv7hl (32bit)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nss_wrapper-1.1.11/CMakeLists.txt 
new/nss_wrapper-1.1.12/CMakeLists.txt
--- old/nss_wrapper-1.1.11/CMakeLists.txt       2020-04-02 12:21:24.000000000 
+0200
+++ new/nss_wrapper-1.1.12/CMakeLists.txt       2022-06-24 10:09:57.000000000 
+0200
@@ -11,7 +11,7 @@
 include(DefineCMakeDefaults)
 include(DefineCompilerFlags)
 
-project(nss_wrapper VERSION 1.1.11 LANGUAGES C)
+project(nss_wrapper VERSION 1.1.12 LANGUAGES C)
 
 # global needed variables
 set(APPLICATION_NAME ${PROJECT_NAME})
@@ -25,7 +25,7 @@
 #     Increment PATCH.
 set(LIBRARY_VERSION_MAJOR 0)
 set(LIBRARY_VERSION_MINOR 3)
-set(LIBRARY_VERSION_PATCH 1)
+set(LIBRARY_VERSION_PATCH 2)
 set(LIBRARY_VERSION 
"${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}")
 set(LIBRARY_SOVERSION ${LIBRARY_VERSION_MAJOR})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nss_wrapper-1.1.11/ConfigureChecks.cmake 
new/nss_wrapper-1.1.12/ConfigureChecks.cmake
--- old/nss_wrapper-1.1.11/ConfigureChecks.cmake        2020-03-19 
10:51:48.000000000 +0100
+++ new/nss_wrapper-1.1.12/ConfigureChecks.cmake        2021-11-08 
15:14:51.000000000 +0100
@@ -263,6 +263,32 @@
     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)
+
 find_library(DLFCN_LIBRARY dl)
 if (DLFCN_LIBRARY)
     list(APPEND _REQUIRED_LIBRARIES ${DLFCN_LIBRARY})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nss_wrapper-1.1.11/config.h.cmake 
new/nss_wrapper-1.1.12/config.h.cmake
--- old/nss_wrapper-1.1.11/config.h.cmake       2020-03-19 10:51:48.000000000 
+0100
+++ new/nss_wrapper-1.1.12/config.h.cmake       2021-11-08 15:14:51.000000000 
+0100
@@ -104,6 +104,8 @@
 #cmakedefine HAVE_ATTRIBUTE_PRINTF_FORMAT 1
 #cmakedefine HAVE_CONSTRUCTOR_ATTRIBUTE 1
 #cmakedefine HAVE_DESTRUCTOR_ATTRIBUTE 1
+#cmakedefine HAVE_PRAGMA_INIT 1
+#cmakedefine HAVE_PRAGMA_FINI 1
 
 /*************************** ENDIAN *****************************/
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nss_wrapper-1.1.11/src/nss_wrapper.c 
new/nss_wrapper-1.1.12/src/nss_wrapper.c
--- old/nss_wrapper-1.1.11/src/nss_wrapper.c    2020-04-02 12:21:24.000000000 
+0200
+++ new/nss_wrapper-1.1.12/src/nss_wrapper.c    2022-06-24 10:09:57.000000000 
+0200
@@ -1070,7 +1070,14 @@
 
 static bool nwrap_gr_parse_line(struct nwrap_cache *nwrap, char *line);
 static void nwrap_gr_unload(struct nwrap_cache *nwrap);
+#if ! defined(HAVE_CONSTRUCTOR_ATTRIBUTE) && defined(HAVE_PRAGMA_INIT)
+/* xlC and other oldschool compilers support (only) this */
+#pragma init (nwrap_constructor)
+#endif
 void nwrap_constructor(void) CONSTRUCTOR_ATTRIBUTE;
+#if ! defined(HAVE_DESTRUCTOR_ATTRIBUTE) && defined(HAVE_PRAGMA_FINI)
+#pragma fini (nwrap_destructor)
+#endif
 void nwrap_destructor(void) DESTRUCTOR_ATTRIBUTE;
 
 /*********************************************************
@@ -2129,7 +2136,21 @@
        }
 
        ret = fstat(nwrap->fd, &st);
-       if (ret != 0) {
+       if (ret != 0 && errno == EBADF && retried == false) {
+               /* maybe something closed the fd on our behalf */
+               NWRAP_LOG(NWRAP_LOG_TRACE,
+                         "fstat(%s) - %d:%s - reopen",
+                         nwrap->path,
+                         ret,
+                         strerror(errno));
+               retried = true;
+               memset(&nwrap->st, 0, sizeof(nwrap->st));
+               fclose(nwrap->fp);
+               nwrap->fp = NULL;
+               nwrap->fd = -1;
+               goto reopen;
+       }
+       else if (ret != 0) {
                NWRAP_LOG(NWRAP_LOG_ERROR,
                          "fstat(%s) - %d:%s",
                          nwrap->path,
@@ -4070,6 +4091,10 @@
        }
 
        name_len = strlen(name);
+       if (name_len == 0) {
+               return EAI_NONAME;
+       }
+
        if (name_len < sizeof(canon_name) && name[name_len - 1] == '.') {
                memcpy(canon_name, name, name_len - 1);
                canon_name[name_len] = '\0';
@@ -4462,7 +4487,7 @@
 
 static void nwrap_module_endpwent(struct nwrap_backend *b)
 {
-       if (b->symbols->_nss_endpwent.f) {
+       if (b->symbols->_nss_endpwent.f == NULL) {
                return;
        }
 
@@ -4634,7 +4659,7 @@
 
 static void nwrap_module_setgrent(struct nwrap_backend *b)
 {
-       if (b->symbols->_nss_setgrent.f) {
+       if (b->symbols->_nss_setgrent.f == NULL) {
                return;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nss_wrapper-1.1.11/tests/test_getpwuid_module.c 
new/nss_wrapper-1.1.12/tests/test_getpwuid_module.c
--- old/nss_wrapper-1.1.11/tests/test_getpwuid_module.c 2020-04-02 
12:21:24.000000000 +0200
+++ new/nss_wrapper-1.1.12/tests/test_getpwuid_module.c 2021-11-08 
15:14:51.000000000 +0100
@@ -4,6 +4,7 @@
 #include <stddef.h>
 #include <setjmp.h>
 #include <cmocka.h>
+#include <unistd.h>
 
 #include <pwd.h>
 
@@ -22,12 +23,36 @@
        assert_int_equal(pwd->pw_gid, id);
 }
 
+static void test_nwrap_passwd_closed_handles(void **state)
+{
+       struct passwd *pwd;
+       uid_t id = 424242;
+       long maxfd;
+
+       (void) state; /* unused */
+
+       pwd = getpwuid(id);
+       assert_non_null(pwd);
+
+       maxfd = sysconf(_SC_OPEN_MAX);
+       if (maxfd < 0) {
+               maxfd = 1024;
+       }
+       for (long fd = 3; fd < maxfd; fd++) {
+               close(fd);
+       }
+
+       pwd = getpwuid(id);
+       assert_non_null(pwd);
+}
+
 int main(void)
 {
        int rc;
 
        const struct CMUnitTest tests[] = {
                cmocka_unit_test(test_nwrap_passwd),
+               cmocka_unit_test(test_nwrap_passwd_closed_handles),
        };
 
        rc = cmocka_run_group_tests(tests, NULL, NULL);

Reply via email to