Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package account-utils for openSUSE:Factory 
checked in at 2026-04-30 20:31:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/account-utils (Old)
 and      /work/SRC/openSUSE:Factory/.account-utils.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "account-utils"

Thu Apr 30 20:31:53 2026 rev:9 rq:1350261 version:1.2.0+git20260430.a5f02f6

Changes:
--------
--- /work/SRC/openSUSE:Factory/account-utils/account-utils.changes      
2026-03-27 16:54:08.915105258 +0100
+++ /work/SRC/openSUSE:Factory/.account-utils.new.30200/account-utils.changes   
2026-04-30 20:32:44.792566056 +0200
@@ -1,0 +2,14 @@
+Thu Apr 30 13:46:59 UTC 2026 - Thorsten Kukuk <[email protected]>
+
+- Update to version 1.2.0+git20260430.a5f02f6:
+  * scan-caps: don't abort on first error
+
+-------------------------------------------------------------------
+Thu Apr 23 09:57:35 UTC 2026 - Thorsten Kukuk <[email protected]>
+
+- Update to version 1.2.0+git20260423.0ee31ef:
+  * Release version 1.2.0
+  * chfn: document that (size_t)-1 is SIZE_MAX
+  * verify_password: fix possible NULL pointer dereference
+
+-------------------------------------------------------------------

Old:
----
  account-utils-1.1.0+git20260327.39b8181.tar.xz

New:
----
  account-utils-1.2.0+git20260430.a5f02f6.tar.xz

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

Other differences:
------------------
++++++ account-utils.spec ++++++
--- /var/tmp/diff_new_pack.vUi6OX/_old  2026-04-30 20:32:46.944654365 +0200
+++ /var/tmp/diff_new_pack.vUi6OX/_new  2026-04-30 20:32:46.976655682 +0200
@@ -22,7 +22,7 @@
 
 %define lname   libpwaccess0
 Name:           account-utils
-Version:        1.1.0+git20260327.39b8181
+Version:        1.2.0+git20260430.a5f02f6
 Release:        0
 Summary:        Service for authentication and account management
 License:        GPL-2.0-or-later AND BSD-2-Clause AND LGPL-2.1-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.vUi6OX/_old  2026-04-30 20:32:47.448675102 +0200
+++ /var/tmp/diff_new_pack.vUi6OX/_new  2026-04-30 20:32:47.496677077 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/thkukuk/account-utils.git</param>
-<param 
name="changesrevision">39b8181aa5752cc245635cf47131fec8f068b45d</param></service></servicedata>
+<param 
name="changesrevision">a5f02f68107f36b8ad04a0aa1ce7c4720b6403a6</param></service></servicedata>
 (No newline at EOF)
 

++++++ account-utils-1.1.0+git20260327.39b8181.tar.xz -> 
account-utils-1.2.0+git20260430.a5f02f6.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/account-utils-1.1.0+git20260327.39b8181/NEWS 
new/account-utils-1.2.0+git20260430.a5f02f6/NEWS
--- old/account-utils-1.1.0+git20260327.39b8181/NEWS    2026-03-27 
09:44:27.000000000 +0100
+++ new/account-utils-1.2.0+git20260430.a5f02f6/NEWS    2026-04-30 
15:45:47.000000000 +0200
@@ -4,6 +4,9 @@
 
 Please enter bug reports at https://github.com/thkukuk/account-utils/issues
 
+Version 1.2.0
+* Several small fixes
+
 Version 1.1.0
 * pam_unix_ng: start pwaccessd.socket if not running
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/account-utils-1.1.0+git20260327.39b8181/TODO 
new/account-utils-1.2.0+git20260430.a5f02f6/TODO
--- old/account-utils-1.1.0+git20260327.39b8181/TODO    2026-03-27 
09:44:27.000000000 +0100
+++ new/account-utils-1.2.0+git20260430.a5f02f6/TODO    2026-04-30 
15:45:47.000000000 +0200
@@ -1,6 +1,4 @@
-- pam_unix_ng: handle PAM_SILENT correct
 - pwupd/pwaccess varlink definition: add OUTPUT fields
-- passwd: --stdin option
 
 Bugs:
 - "passwd -e <account>" reports "password changed"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/account-utils-1.1.0+git20260327.39b8181/libcommon/chfn_checks.c 
new/account-utils-1.2.0+git20260430.a5f02f6/libcommon/chfn_checks.c
--- old/account-utils-1.1.0+git20260327.39b8181/libcommon/chfn_checks.c 
2026-03-27 09:44:27.000000000 +0100
+++ new/account-utils-1.2.0+git20260430.a5f02f6/libcommon/chfn_checks.c 
2026-04-30 15:45:47.000000000 +0200
@@ -97,7 +97,7 @@
     return -EINVAL;
 
   size = mbstowcs(NULL, string, 0);
-  if (size == (size_t) -1)
+  if (size == (size_t) -1) // equal to size == SIZE_MAX
     return -EINVAL;
 
   buf = calloc(size + 1, sizeof(wchar_t));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/account-utils-1.1.0+git20260327.39b8181/libcommon/verify.c 
new/account-utils-1.2.0+git20260430.a5f02f6/libcommon/verify.c
--- old/account-utils-1.1.0+git20260327.39b8181/libcommon/verify.c      
2026-03-27 09:44:27.000000000 +0100
+++ new/account-utils-1.2.0+git20260430.a5f02f6/libcommon/verify.c      
2026-04-30 15:45:47.000000000 +0200
@@ -147,20 +147,20 @@
 }
 
 int
-verify_password(const char *hash, const char *p, bool nullok)
+verify_password(const char *hash, const char *password, bool nullok)
 {
   _cleanup_free_ char *pp = NULL;
 
-  if (isempty(p) && !nullok)
+  if (isempty(password) && !nullok)
     return VERIFY_FAILED;
   else if (isempty(hash))
     {
-      if (isempty(p) && nullok)
+      if (isempty(password) && nullok)
        return VERIFY_OK;
       else
        return VERIFY_FAILED;
     }
-  else if (!p || *hash == '*' || *hash == '!')
+  else if (!password || *hash == '*' || *hash == '!')
     return VERIFY_FAILED;
   else
     {
@@ -180,7 +180,9 @@
       cdata = calloc(1, sizeof(*cdata));
       if (cdata != NULL)
        {
-         pp = strdup(crypt_r(p, hash, cdata));
+         char *cp = crypt_r(password, hash, cdata);
+         if (cp)
+           pp = strdup(cp);
          explicit_bzero(cdata, sizeof(struct crypt_data));
          free(cdata);
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/account-utils-1.1.0+git20260327.39b8181/meson.build 
new/account-utils-1.2.0+git20260430.a5f02f6/meson.build
--- old/account-utils-1.1.0+git20260327.39b8181/meson.build     2026-03-27 
09:44:27.000000000 +0100
+++ new/account-utils-1.2.0+git20260430.a5f02f6/meson.build     2026-04-30 
15:45:47.000000000 +0200
@@ -12,7 +12,7 @@
                   'b_lto=true',
                  'warning_level=2'],
   license : ['GPL-2.0-or-later', 'LGPL-2.1-or-later'],
-  version : '1.1.0',
+  version : '1.2.0',
 )
 
 distribution = get_option('distribution')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/account-utils-1.1.0+git20260327.39b8181/tools/scan-caps.c 
new/account-utils-1.2.0+git20260430.a5f02f6/tools/scan-caps.c
--- old/account-utils-1.1.0+git20260327.39b8181/tools/scan-caps.c       
2026-03-27 09:44:27.000000000 +0100
+++ new/account-utils-1.2.0+git20260430.a5f02f6/tools/scan-caps.c       
2026-04-30 15:45:47.000000000 +0200
@@ -115,13 +115,26 @@
     return 0;
 }
 
-/* Recursively walks a directory */
+static inline void
+closedirp(DIR **p)
+{
+  if (*p)
+    {
+      closedir(*p);
+      *p = NULL;
+    }
+}
+
+/* Recursively walks a directory.
+   Ignore most errors, continue with other files and directories, but
+   report error back. */
 static int
 walk_directory(const char *dir_path)
 {
-  DIR *dir;
+  _cleanup_(closedirp) DIR *dir;
   struct dirent *entry;
   struct stat st;
+  int retval = 0; // zero or latest reported error
   int r;
 
   if (!(dir = opendir(dir_path)))
@@ -149,7 +162,7 @@
        {
          r = -errno;
          fprintf(stderr, "lstat(%s) failed: %s\n", path, strerror(-r));
-         return r;
+         retval = r;
        }
 
       if (S_ISLNK(st.st_mode))
@@ -159,23 +172,23 @@
        {
          r = walk_directory(path);  /* Recurse into subdirectory */
          if (r < 0)
-           return r;
+           retval = r;
        }
       else
        {
          r = check_file(path, st);
          if (r < 0)
-           return r;
+           retval = r;
        }
     }
-  closedir(dir);
 
-  return 0;
+  return retval;
 }
 
 int
 main(int argc, char **argv)
 {
+  int retval = 0;
   int r;
 
   while (1)
@@ -217,20 +230,19 @@
 
   for (int i = 0; scan_list[i] != NULL; i++)
     {
-      // If scanning argv, ensure we stop exactly at argc to match original 
logic
-      // (Standard C guarantees argv[argc] is NULL, but this is defensively 
safe)
-      if (argc > 0 && i >= argc) break;
+      if (argc > 0 && i >= argc)
+       break;
 
       r = walk_directory(scan_list[i]);
       if (r < 0)
-        {
-          printf("Scan aborted.\n");
-          return -r;
-        }
+       retval = -r;
     }
 
   printf("----------------------------------------------------------------\n");
-  printf("Scan complete.\n");
+  if (retval != 0)
+    printf("Scan incomplete due to errors.\n");
+  else
+    printf("Scan complete.\n");
 
-  return 0;
+  return retval;
 }

Reply via email to