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; }
