Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pdsh for openSUSE:Factory checked in 
at 2026-05-23 23:24:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pdsh (Old)
 and      /work/SRC/openSUSE:Factory/.pdsh.new.2084 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pdsh"

Sat May 23 23:24:23 2026 rev:56 rq:1354661 version:2.36

Changes:
--------
--- /work/SRC/openSUSE:Factory/pdsh/pdsh.changes        2025-11-07 
18:26:36.601911656 +0100
+++ /work/SRC/openSUSE:Factory/.pdsh.new.2084/pdsh.changes      2026-05-23 
23:25:49.740919627 +0200
@@ -1,0 +2,13 @@
+Fri May 22 04:10:27 UTC 2026 - Egbert Eich <[email protected]>
+
+- Update to version 2.36:
+  * `common/hostlist`: fix out of bounds array access.
+                     update to latest from lsd-tools.
+  * Fix build on C23 compiler (gcc >= 15).
+    This obsoletes: Add-support-for-C23-gcc-15.patch
+  * Update actions versions and fix code coverage build.
+  * Fix some compiler warnings when compiling pdsh.
+  * Fix closeall() performance with large _SC_OPEN_MAX.
+  * `modules/genders`: fix typo.
+
+-------------------------------------------------------------------

Old:
----
  Add-support-for-C23-gcc-15.patch
  pdsh-2.35.tar.gz

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  pdsh-2.36.tar.gz

----------(Old B)----------
  Old:  * Fix build on C23 compiler (gcc >= 15).
    This obsoletes: Add-support-for-C23-gcc-15.patch
  * Update actions versions and fix code coverage build.
----------(Old E)----------

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

Other differences:
------------------
++++++ pdsh.spec ++++++
--- /var/tmp/diff_new_pack.kfTHt6/_old  2026-05-23 23:25:50.512951144 +0200
+++ /var/tmp/diff_new_pack.kfTHt6/_new  2026-05-23 23:25:50.516951307 +0200
@@ -66,13 +66,12 @@
 BuildRequires:  genders-devel > 1.0
 %endif
 URL:            https://github.com/chaos/%{pname}
-Version:        2.35
+Version:        2.36
 Release:        0
 Summary:        Parallel remote shell program
 License:        GPL-2.0-or-later
 Group:          Productivity/Clustering/Computing
 Source:         
https://github.com/chaos/%{pname}/releases/download/%{pname}-%{version}/%{pname}-%{version}.tar.gz
-Patch:          Add-support-for-C23-gcc-15.patch
 
 %description
 Pdsh is a multithreaded remote shell client which executes commands on

++++++ _scmsync.obsinfo ++++++
mtime: 1779442186
commit: 386138b6d7201c83dc1653c8bbe4769c7b1faef624e0b72503ea74b1bcc99dcc
url: https://src.opensuse.org/Cluster/pdsh.git
revision: main

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-05-22 11:29:46.000000000 +0200
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild

++++++ pdsh-2.35.tar.gz -> pdsh-2.36.tar.gz ++++++
++++ 12322 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/Makefile.am new/pdsh-2.36/Makefile.am
--- old/pdsh-2.35/Makefile.am   2023-04-18 16:23:50.000000000 +0200
+++ new/pdsh-2.36/Makefile.am   2026-01-12 15:34:59.000000000 +0100
@@ -47,6 +47,9 @@
 
 # coverage
 
+CODE_COVERAGE_LCOV_RMOPTS = \
+       --ignore-errors unused
+
 CODE_COVERAGE_IGNORE_PATTERN = \
         "/tests/*" \
         "/pdsh/cbuf.*" \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/NEWS new/pdsh-2.36/NEWS
--- old/pdsh-2.35/NEWS  2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/NEWS  2026-01-12 16:28:20.000000000 +0100
@@ -1,6 +1,14 @@
 This file describes changes in recent versions of pdsh. It primarily
 documents those changes that are of interest to users and admins.
 
+* Changes in pdsh-2.36 (2025-01-12)
+===================================
+ -- fix build on C23 compiler (Egbert Eich)
+ -- mcmd: fix compiler warnings on modern GCC (Adrian Reber)
+ -- fix closeall performance with large _SC_OPEN_MAX (Zheyu Shen)
+ -- genders: fix typo in comment (Al Chu)
+ -- fix hostlist out of bounds array access (Al Chu)
+
 * Changes in pdsh-2.35 (2023-12-19)
 ===================================
  -- slurm: call slurm_init() once before any call to Slurm API (Egbert Eich)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/config.h.in new/pdsh-2.36/config.h.in
--- old/pdsh-2.35/config.h.in   2023-12-19 16:32:58.000000000 +0100
+++ new/pdsh-2.36/config.h.in   2025-03-19 16:27:49.000000000 +0100
@@ -52,9 +52,6 @@
 /* Define if you have machines */
 #undef HAVE_MACHINES
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
 /* Define if you have mrsh. */
 #undef HAVE_MRSH
 
@@ -114,13 +111,16 @@
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
 /* Define to 1 if you have the `strerror' function. */
 #undef HAVE_STRERROR
 
-/* Define to 1 if you have the `strerror_r' function. */
+/* Define if you have `strerror_r'. */
 #undef HAVE_STRERROR_R
 
 /* Define to 1 if you have the <strings.h> header file. */
@@ -196,7 +196,9 @@
 /* Use Static Modules */
 #undef STATIC_MODULES
 
-/* Define to 1 if you have the ANSI C header files. */
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
 
 /* Define to 1 if strerror_r returns char *. */
@@ -217,11 +219,6 @@
 /* Define if on AIX */
 #undef _AIX
 
-/* Enable large inode numbers on Mac OS X 10.5.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/common/hostlist.c new/pdsh-2.36/src/common/hostlist.c
--- old/pdsh-2.35/src/common/hostlist.c 2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/src/common/hostlist.c 2026-01-12 15:07:31.000000000 +0100
@@ -1,5 +1,5 @@
 /*****************************************************************************\
- *  $LSDId: hostlist.c 11882 2012-10-03 17:31:41Z grondo $
+ *  $LSDId: commit c08d251f3cc9b1a5b69a268f952d64f990366835 $
  *****************************************************************************
  *  Copyright (C) 2002 The Regents of the University of California.
  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
@@ -379,7 +379,7 @@
     tok = *str;
 
     while ( **str != '\0' &&
-           (level != 0 || strchr(sep, **str) == NULL) ) {
+            (level != 0 || strchr(sep, **str) == NULL) ) {
       if ( **str == '[' ) level++;
       else if ( **str == ']' ) level--;
       (*str)++;
@@ -1063,7 +1063,7 @@
     if (!new)
         goto fail1;
 
-    assert(new->magic = HOSTLIST_MAGIC);
+    assert((new->magic = HOSTLIST_MAGIC));
     mutex_init(&new->mutex);
 
     new->hr = (hostrange_t *) malloc(HOSTLIST_CHUNK * sizeof(hostrange_t));
@@ -1099,7 +1099,7 @@
     int i;
     size_t oldsize;
     assert(hl != NULL);
-    assert(hl->magic == HOSTLIST_MAGIC);
+    assert((hl->magic == HOSTLIST_MAGIC));
     oldsize = hl->size;
     hl->size = newsize;
     hl->hr = realloc((void *) hl->hr, hl->size*sizeof(hostrange_t));
@@ -1186,7 +1186,7 @@
     hostlist_iterator_t hli;
 
     assert(hl != NULL);
-    assert(hl->magic == HOSTLIST_MAGIC);
+    assert((hl->magic == HOSTLIST_MAGIC));
     assert(hr != NULL);
 
     if (n > hl->nranges)
@@ -1225,7 +1225,7 @@
     hostrange_t old;
 
     assert(hl != NULL);
-    assert(hl->magic == HOSTLIST_MAGIC);
+    assert((hl->magic == HOSTLIST_MAGIC));
     assert(n < hl->nranges && n >= 0);
 
     old = hl->hr[n];
@@ -1279,7 +1279,7 @@
         /* find end of alpha part
          *   do this by finding last occurence of range_op in str */
         pos = strlen(tok) - 1;
-        if (strstr(tok, r_op) != '\0') {
+        if (strstr(tok, r_op) != NULL) {
             while (pos >= 0 && (char) tok[pos] != range_op)
                 pos--;
         }
@@ -1512,7 +1512,7 @@
     }
 
     while ((tok = _next_tok(sep, &str)) != NULL) {
-        strncpy(cur_tok, tok, 1023);
+        strncpy(cur_tok, tok, sizeof (cur_tok) - 1);
 
         if ((p = strchr(tok, '[')) != NULL) {
             char *q, *prefix = tok;
@@ -1529,17 +1529,20 @@
                 else
                     _push_range_list(new, prefix, ranges, nr);
 
+            } else                   /* Error: brackets must be balanced */
+                goto error_unmatched;
 
-            } else
-                hostlist_push_host(new, cur_tok);
-
-        } else
+        } else if (strchr(tok, ']')) /* Error: brackets must be balanced */
+            goto error_unmatched;
+        else                         /* Ok: No brackets found, single host */
             hostlist_push_host(new, cur_tok);
     }
 
     free(orig);
     return new;
 
+  error_unmatched:
+    errno = EINVAL;
   error:
     err = errno;
     hostlist_destroy(new);
@@ -1595,7 +1598,7 @@
     for (i = 0; i < hl->nranges; i++)
         hostrange_destroy(hl->hr[i]);
     free(hl->hr);
-    assert(hl->magic = 0x1);
+    assert((hl->magic = 0x1));
     UNLOCK_HOSTLIST(hl);
     mutex_destroy(&hl->mutex);
     free(hl);
@@ -2215,7 +2218,7 @@
     i->idx = 0;
     i->depth = -1;
     i->next = i;
-    assert(i->magic = HOSTLIST_MAGIC);
+    assert((i->magic = HOSTLIST_MAGIC));
     return i;
 }
 
@@ -2266,7 +2269,7 @@
         }
     }
     UNLOCK_HOSTLIST(i->hl);
-    assert(i->magic = 0x1);
+    assert((i->magic = 0x1));
     free(i);
 }
 
@@ -2278,7 +2281,11 @@
         return;
     if (++(i->depth) > (i->hr->hi - i->hr->lo)) {
         i->depth = 0;
-        i->hr = i->hl->hr[++i->idx];
+        if (++i->idx >= i->hl->size) {
+            i->hr = NULL;
+            return;
+        }
+        i->hr = i->hl->hr[i->idx];
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/common/hostlist.h new/pdsh-2.36/src/common/hostlist.h
--- old/pdsh-2.35/src/common/hostlist.h 2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/src/common/hostlist.h 2026-01-12 15:07:31.000000000 +0100
@@ -1,7 +1,5 @@
 /*****************************************************************************\
- *  $Id$
- *****************************************************************************
- *  $LSDId: hostlist.h 7428 2008-05-23 16:08:31Z grondo $
+ *  $LSDId: commit c08d251f3cc9b1a5b69a268f952d64f990366835 $
  *****************************************************************************
  *  Copyright (C) 2002 The Regents of the University of California.
  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/common/macros.h new/pdsh-2.36/src/common/macros.h
--- old/pdsh-2.35/src/common/macros.h   2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/src/common/macros.h   2026-01-12 15:34:59.000000000 +0100
@@ -58,9 +58,11 @@
 
 #ifndef _BOOL_DEFINED
 #  define _BOOL_DEFINED
+# if __STDC_VERSION__ < 202311L
 #  if !defined (true) && !defined (false)
 typedef enum { false, true } bool;
 #  endif
+# endif
 #endif
 
 #endif                          /* !_MACROS_INCLUDED */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/common/pipecmd.c new/pdsh-2.36/src/common/pipecmd.c
--- old/pdsh-2.35/src/common/pipecmd.c  2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/src/common/pipecmd.c  2026-01-12 15:34:59.000000000 +0100
@@ -33,7 +33,10 @@
 #include <signal.h>
 #include <errno.h>
 #include <unistd.h>
+#include <dirent.h>
 #include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
 
 #include "src/common/xmalloc.h"
 #include "src/common/xstring.h"
@@ -252,6 +255,32 @@
 
 static void closeall (int fd)
 {
+#ifdef __linux
+    struct dirent *d;
+    DIR *dir;
+    dir = opendir("/proc/self/fd");
+    if (dir) {
+        int dfd = dirfd(dir);
+        while ((d = readdir(dir))) {
+            char * end;
+            unsigned int ufd;
+            int cfd;
+
+            if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
+                continue;
+            errno = 0;
+            ufd = strtoul(d->d_name, &end, 10);
+            if (errno || end == d->d_name || !end || *end)
+                continue;
+            cfd = (int) ufd;
+            if (cfd == dfd || cfd < fd)
+                continue;
+            close(cfd);
+        }
+        closedir(dir);
+        return;
+    }
+#endif
     int fdlimit = sysconf (_SC_OPEN_MAX);
 
     while (fd < fdlimit)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/modules/genders.c new/pdsh-2.36/src/modules/genders.c
--- old/pdsh-2.35/src/modules/genders.c 2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/src/modules/genders.c 2026-01-12 15:37:05.000000000 +0100
@@ -404,7 +404,7 @@
 
         /*
          *  If node not found, attempt to lookup canonical name via
-         *   altername name.
+         *   alternate name.
          */
         if ((rc < 0) && (genders_errnum(g) == GENDERS_ERR_NOTFOUND))
             rc = genders_getnodes (g, &altname, 1, altattr, host);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/modules/mcmd.c new/pdsh-2.36/src/modules/mcmd.c
--- old/pdsh-2.35/src/modules/mcmd.c    2023-12-19 19:55:31.000000000 +0100
+++ new/pdsh-2.36/src/modules/mcmd.c    2026-01-12 15:34:59.000000000 +0100
@@ -207,8 +207,12 @@
     /*
      * Drop privileges if running setuid root
      */
-    if ((geteuid() == 0) && (getuid() != 0))
-        setuid (getuid ());
+    if ((geteuid() == 0) && (getuid() != 0)) {
+        if ((setuid (getuid ()) < 0)) {
+            err("%p: mcmd: setuid () failed\n");
+            return -1;
+       }
+    }
 
     /*
      * Generate a random number to send in our package to the
@@ -277,8 +281,8 @@
     if (gethostname (hostname, MAXHOSTNAMELEN) < 0)
         errx ("mcmd: gethostname: %m\n");
 
-    strncpy (str, MRSH_LOCALHOST_KEY, MRSH_LOCALHOST_KEYLEN);
-    strncat (str, hostname, maxlen - MRSH_LOCALHOST_KEYLEN - 1);
+    strncpy (str, MRSH_LOCALHOST_KEY, MRSH_LOCALHOST_KEYLEN + 1);
+    strncat (str, hostname, maxlen - MRSH_LOCALHOST_KEYLEN);
 
     return (strlen (str));
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pdsh-2.35/src/pdsh/cbuf.c new/pdsh-2.36/src/pdsh/cbuf.c
--- old/pdsh-2.35/src/pdsh/cbuf.c       2023-12-19 18:31:59.000000000 +0100
+++ new/pdsh-2.36/src/pdsh/cbuf.c       2026-01-12 15:34:59.000000000 +0100
@@ -817,7 +817,8 @@
 {
     int len;
     int nfree, ncopy, n;
-    int ndrop = 0, d;
+    int ndrop = 0;
+    int d = 0;
     char *psrc = srcbuf;
     char *newline = "\n";
 

Reply via email to