Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sshpass for openSUSE:Factory checked 
in at 2023-03-07 16:50:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sshpass (Old)
 and      /work/SRC/openSUSE:Factory/.sshpass.new.31432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sshpass"

Tue Mar  7 16:50:29 2023 rev:5 rq:1069841 version:1.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/sshpass/sshpass.changes  2021-03-30 
21:00:19.032712461 +0200
+++ /work/SRC/openSUSE:Factory/.sshpass.new.31432/sshpass.changes       
2023-03-07 16:50:55.593771599 +0100
@@ -1,0 +2,12 @@
+Tue Mar  7 07:36:57 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 1.10:
+  * Remove sig unsafe functions from signal handler (Ticket #22).
+  * Allow -e to explicitly specify the environment variable to
+    use
+  * Unset the variable specified with -e before calling
+    subprogram
+  * Change the logic for setting a controlling TTY. Fixes
+    compatibility issues with OpenSolaris and MSYS/Cygwin.
+
+-------------------------------------------------------------------

Old:
----
  sshpass-1.09.tar.gz

New:
----
  sshpass-1.10.tar.gz

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

Other differences:
------------------
++++++ sshpass.spec ++++++
--- /var/tmp/diff_new_pack.iJ1Pk7/_old  2023-03-07 16:50:56.097774257 +0100
+++ /var/tmp/diff_new_pack.iJ1Pk7/_new  2023-03-07 16:50:56.101774278 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package sshpass
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,12 +17,12 @@
 
 
 Name:           sshpass
-Version:        1.09
+Version:        1.10
 Release:        0
 Summary:        Non-interactive SSH authentication utility
 License:        GPL-2.0-or-later
 Group:          System/Management
-URL:            http://sshpass.sourceforge.net/
+URL:            https://sshpass.sourceforge.net/
 Source0:        
https://downloads.sourceforge.net/sshpass/sshpass-%{version}.tar.gz
 
 %description
@@ -35,15 +35,15 @@
 
 %build
 %configure
-make %{?_smp_mflags}
+%make_build
 
 %install
-make %{?_smp_mflags} DESTDIR=%{buildroot} install
+%make_install
 
 %files
 %license COPYING
 %doc AUTHORS ChangeLog NEWS
 %{_bindir}/sshpass
-%{_mandir}/man1/sshpass.1%{ext_man}
+%{_mandir}/man1/sshpass.1%{?ext_man}
 
 %changelog

++++++ sshpass-1.09.tar.gz -> sshpass-1.10.tar.gz ++++++
++++ 12550 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/sshpass-1.09/ChangeLog new/sshpass-1.10/ChangeLog
--- old/sshpass-1.09/ChangeLog  2021-01-29 17:21:07.000000000 +0100
+++ new/sshpass-1.10/ChangeLog  2023-02-12 03:51:18.000000000 +0100
@@ -1,3 +1,14 @@
+Version 1.10
+        * Convert repo to git
+        * Remove sig unsafe functions from signal handler (Ticket #22).
+        * Allow -e to explicitly specify the environment variable to use
+          (Ticket #5).
+        * Unset the variable specified with -e before calling subprogram
+          (Ticket #25).
+        * Change the logic for setting a controlling TTY. Fixes compatibility
+          issues with OpenSolaris and MSYS/Cygwin. Thanks Marcin Olszewski for
+          the fix.
+
 Version 1.09
        * Explicitly set the controlling TTY (SF patch #7)
 
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/sshpass-1.09/INSTALL new/sshpass-1.10/INSTALL
--- old/sshpass-1.09/INSTALL    2020-02-07 08:55:40.000000000 +0100
+++ new/sshpass-1.10/INSTALL    2022-05-28 10:21:16.000000000 +0200
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-   Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
-Foundation, Inc.
+   Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
+Software Foundation, Inc.
 
    Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
@@ -225,7 +225,7 @@
 
 and if that doesn't work, install pre-built binaries of GCC for HP-UX.
 
-   HP-UX 'make' updates targets which have the same time stamps as their
+   HP-UX 'make' updates targets which have the same timestamps as their
 prerequisites, which makes it generally unusable when shipped generated
 files such as 'configure' are involved.  Use GNU 'make' instead.
 
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/sshpass-1.09/compile new/sshpass-1.10/compile
--- old/sshpass-1.09/compile    2020-02-07 08:55:40.000000000 +0100
+++ new/sshpass-1.10/compile    2022-05-28 10:21:16.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -53,7 +53,7 @@
          MINGW*)
            file_conv=mingw
            ;;
-         CYGWIN*)
+         CYGWIN* | MSYS*)
            file_conv=cygwin
            ;;
          *)
@@ -67,7 +67,7 @@
        mingw/*)
          file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
          ;;
-       cygwin/*)
+       cygwin/* | msys/*)
          file=`cygpath -m "$file" || echo "$file"`
          ;;
        wine/*)
@@ -255,7 +255,8 @@
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -339,9 +340,9 @@
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
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/sshpass-1.09/config.h.in new/sshpass-1.10/config.h.in
--- old/sshpass-1.09/config.h.in        2021-01-29 17:21:17.000000000 +0100
+++ new/sshpass-1.10/config.h.in        2023-02-12 03:50:50.000000000 +0100
@@ -13,8 +13,8 @@
    to 0 otherwise. */
 #undef HAVE_MALLOC
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
+/* Define to 1 if you have the <minix/config.h> header file. */
+#undef HAVE_MINIX_CONFIG_H
 
 /* Define to 1 if you have the `posix_openpt' function. */
 #undef HAVE_POSIX_OPENPT
@@ -25,6 +25,9 @@
 /* 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
 
@@ -67,6 +70,9 @@
 /* Define to 1 if you have the <vfork.h> header file. */
 #undef HAVE_VFORK_H
 
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
 /* Define to 1 if `fork' works. */
 #undef HAVE_WORKING_FORK
 
@@ -109,51 +115,109 @@
 /* Define to the type of arg 5 for `select'. */
 #undef SELECT_TYPE_ARG5
 
-/* 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
 
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
+/* Enable general extensions on macOS.  */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
 /* Enable GNU extensions on systems that have them.  */
 #ifndef _GNU_SOURCE
 # undef _GNU_SOURCE
 #endif
-/* Enable threading extensions on Solaris.  */
+/* Enable X/Open compliant socket functions that do not require linking
+   with -lxnet on HP-UX 11.11.  */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
+/* Identify the host operating system as Minix.
+   This macro does not affect the system headers' behavior.
+   A future release of Autoconf may stop defining this macro.  */
+#ifndef _MINIX
+# undef _MINIX
+#endif
+/* Enable general extensions on NetBSD.
+   Enable NetBSD compatibility extensions on Minix.  */
+#ifndef _NETBSD_SOURCE
+# undef _NETBSD_SOURCE
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+   Oddly enough, this does nothing on OpenBSD.  */
+#ifndef _OPENBSD_SOURCE
+# undef _OPENBSD_SOURCE
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_SOURCE
+# undef _POSIX_SOURCE
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior.  */
+#ifndef _POSIX_1_SOURCE
+# undef _POSIX_1_SOURCE
+#endif
+/* Enable POSIX-compatible threading on Solaris.  */
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
 #endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# undef __STDC_WANT_IEC_60559_BFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# undef __STDC_WANT_IEC_60559_DFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# undef __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
+#ifndef __STDC_WANT_LIB_EXT2__
+# undef __STDC_WANT_LIB_EXT2__
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009.  */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# undef __STDC_WANT_MATH_SPEC_FUNCS__
+#endif
 /* Enable extensions on HP NonStop.  */
 #ifndef _TANDEM_SOURCE
 # undef _TANDEM_SOURCE
 #endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
+/* Enable X/Open extensions.  Define to 500 only if necessary
+   to make mbstate_t available.  */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
 #endif
 
 
 /* Version number of package */
 #undef VERSION
 
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
 /* Define to empty if `const' does not conform to ANSI C. */
 #undef const
 
 /* Define to rpl_malloc if the replacement function should be used. */
 #undef malloc
 
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define as a signed integer type capable of holding a process identifier. */
 #undef pid_t
 
 /* Define to `int' if <sys/types.h> does not define. */
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/sshpass-1.09/configure.ac new/sshpass-1.10/configure.ac
--- old/sshpass-1.09/configure.ac       2021-01-29 17:21:12.000000000 +0100
+++ new/sshpass-1.10/configure.ac       2023-02-12 03:50:43.000000000 +0100
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT([sshpass], [1.09])
+AC_INIT([sshpass], [1.10])
 AM_INIT_AUTOMAKE
 AC_COPYRIGHT([Copyright (C) 2006,2008,2011,2016,2021 Shachar Shemesh])
 AC_CONFIG_SRCDIR([main.c])
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/sshpass-1.09/main.c new/sshpass-1.10/main.c
--- old/sshpass-1.09/main.c     2021-01-29 14:15:03.000000000 +0100
+++ new/sshpass-1.10/main.c     2023-02-12 03:45:49.000000000 +0100
@@ -29,6 +29,7 @@
 #include <sys/ioctl.h>
 #include <sys/select.h>
 
+#include <assert.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <signal.h>
@@ -50,6 +51,7 @@
     RETURN_INCORRECT_PASSWORD,
     RETURN_HOST_KEY_UNKNOWN,
     RETURN_HOST_KEY_CHANGED,
+    RETURN_HELP,
 };
 
 // Some systems don't define posix_openpt
@@ -61,12 +63,15 @@
 }
 #endif
 
+#define DEFAULT_ENV_PASSWORD "SSHPASS"
+
 int runprogram( int argc, char *argv[] );
 void reliable_write( int fd, const void *data, size_t size );
 int handleoutput( int fd );
 void window_resize_handler(int signum);
 void sigchld_handler(int signum);
 void term_handler(int signum);
+void term_child(int signum);
 int match( const char *reference, const char *buffer, ssize_t bufsize, int 
state );
 void write_pass( int fd );
 
@@ -83,19 +88,34 @@
     char *orig_password;
 } args;
 
+static void hide_password()
+{
+    assert(args.pwsrc.password==NULL);
+
+    args.pwsrc.password = strdup(args.orig_password);
+
+    // Hide the original password from prying eyes
+    while( *args.orig_password != '\0' ) {
+        *args.orig_password = '\0';
+        ++args.orig_password;
+    }
+
+    args.orig_password = NULL;
+}
+
 static void show_help()
 {
-    printf("Usage: " PACKAGE_NAME " [-f|-d|-p|-e] [-hV] command parameters\n"
-            "   -f filename   Take password to use from file\n"
-            "   -d number     Use number as file descriptor for getting 
password\n"
-            "   -p password   Provide password as argument (security unwise)\n"
-            "   -e            Password is passed as env-var \"SSHPASS\"\n"
-            "   With no parameters - password will be taken from stdin\n\n"
-            "   -P prompt     Which string should sshpass search for to detect 
a password prompt\n"
-            "   -v            Be verbose about what you're doing\n"
-            "   -h            Show help (this screen)\n"
-            "   -V            Print version information\n"
-            "At most one of -f, -d, -p or -e should be used\n");
+    printf("Usage: " PACKAGE_NAME " [-f|-d|-p|-e[env_var]] [-hV] command 
parameters\n"
+            "   -f filename   Take password to use from file.\n"
+            "   -d number     Use number as file descriptor for getting 
password.\n"
+            "   -p password   Provide password as argument (security 
unwise).\n"
+            "   -e[env_var]   Password is passed as env-var \"env_var\" if 
given, \"SSHPASS\" otherwise.\n"
+            "   With no parameters - password will be taken from stdin.\n\n"
+            "   -P prompt     Which string should sshpass search for to detect 
a password prompt.\n"
+            "   -v            Be verbose about what you're doing.\n"
+            "   -h            Show help (this screen).\n"
+            "   -V            Print version information.\n"
+            "At most one of -f, -d, -p or -e should be used.\n");
 }
 
 // Parse the command line. Fill in the "args" global struct with the results. 
Return argv offset
@@ -113,7 +133,7 @@
     fprintf(stderr, "Conflicting password source\n"); \
     error=RETURN_CONFLICTING_ARGUMENTS; }
 
-    while( (opt=getopt(argc, argv, "+f:d:p:P:heVv"))!=-1 && error==-1 ) {
+    while( (opt=getopt(argc, argv, "+f:d:p:P:he::Vv"))!=-1 && error==-1 ) {
         switch( opt ) {
         case 'f':
             // Password should come from a file
@@ -146,24 +166,29 @@
             VIRGIN_PWTYPE;
 
             args.pwtype=PWT_PASS;
-            args.orig_password=getenv("SSHPASS");
+            if( optarg==NULL )
+                optarg = "SSHPASS";
+            args.orig_password=getenv(optarg);
+
             if( args.orig_password==NULL ) {
-                fprintf(stderr, "SSHPASS: -e option given but SSHPASS 
environment variable not set\n");
+                fprintf(stderr, "sshpass: -e option given but \"%s\" 
environment variable is not set.\n", optarg);
 
                 error=RETURN_INVALID_ARGUMENTS;
             }
+
+            hide_password();
+            unsetenv(optarg);
             break;
         case '?':
         case ':':
             error=RETURN_INVALID_ARGUMENTS;
             break;
         case 'h':
-            error=RETURN_NOERROR;
-            break;
+            return -(RETURN_HELP+1);
         case 'V':
             printf("%s\n"
                     "(C) 2006-2011 Lingnu Open Source Consulting Ltd.\n"
-                    "(C) 2015-2016, 2021 Shachar Shemesh\n"
+                    "(C) 2015-2016, 2021-2022 Shachar Shemesh\n"
                     "This program is free software, and can be distributed 
under the terms of the GPL\n"
                     "See the COPYING file for more information.\n"
                     "\n"
@@ -183,9 +208,14 @@
 {
     int opt_offset=parse_options( argc, argv );
 
+    if( opt_offset==-(RETURN_HELP+1) ) {
+        show_help();
+        return 0;
+    }
+
     if( opt_offset<0 ) {
         // There was some error
-        show_help();
+        fprintf(stderr, "Use \"sshpass -h\" to get help\n");
 
         return -(opt_offset+1); // -1 becomes 0, -2 becomes 1 etc.
     }
@@ -197,13 +227,7 @@
     }
 
     if( args.orig_password!=NULL ) {
-        args.pwsrc.password = strdup(args.orig_password);
-
-        // Hide the original password from prying eyes
-        while( *args.orig_password != '\0' ) {
-            *args.orig_password = 'x';
-            ++args.orig_password;
-        }
+        hide_password();
     }
 
     return runprogram( argc-opt_offset, argv+opt_offset );
@@ -214,7 +238,7 @@
 static int masterpt;
 
 int childpid;
-int term;
+int termsig;
 
 int runprogram( int argc, char *argv[] )
 {
@@ -310,18 +334,16 @@
 
         // Detach us from the current TTY
         setsid();
-        // This line makes the ptty our controlling tty. We do not otherwise 
need it open
-        slavept=open(name, O_RDWR );
-#ifdef TIOCSCTTY
-        // On some systems, an open(2) is insufficient to set the
-        // controlling tty (see the documentation for TIOCSCTTY in
-        // tty(4)).
-        if (ioctl(slavept, TIOCSCTTY) == -1) {
+
+        // Attach the process to a controlling TTY.
+        slavept=open(name, O_RDWR | O_NOCTTY);
+        // On some systems, an open(2) is insufficient to set the controlling 
tty (see the documentation for
+        // TIOCSCTTY in tty(4)).
+        if (ioctl(slavept, TIOCSCTTY, 0) == -1) {
             perror("sshpass: Failed to set controlling terminal in child 
(TIOCSCTTY)");
             exit(RETURN_RUNTIME_ERROR);
         }
-#endif
-        close( slavept );
+        close( slavept ); // We don't need the controlling TTY actually open
 
         close( masterpt );
 
@@ -362,6 +384,16 @@
 
             int selret=pselect( masterpt+1, &readfd, NULL, NULL, NULL, 
&sigmask_select );
 
+            if( termsig!=0 ) {
+                // Copying termsig isn't strictly necessary, as signals are 
masked at this point.
+                int signum = termsig;
+                termsig = 0;
+
+                term_child(signum);
+
+                continue;
+            }
+
             if( selret>0 ) {
                 if( FD_ISSET( masterpt, &readfd ) ) {
                     int ret;
@@ -547,6 +579,13 @@
 
 void term_handler(int signum)
 {
+    // BUG: There is a potential race here if two signals arrive before the 
main code had a chance to handle them.
+    // This seems low enough risk not to justify the extra code to correctly 
handle this.
+    termsig = signum;
+}
+
+void term_child(int signum)
+{
     fflush(stdout);
     switch(signum) {
     case SIGINT:
@@ -560,8 +599,6 @@
             kill( childpid, signum );
         }
     }
-
-    term = 1;
 }
 
 void reliable_write( int fd, const void *data, size_t size )
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/sshpass-1.09/missing new/sshpass-1.10/missing
--- old/sshpass-1.09/missing    2020-02-07 08:55:40.000000000 +0100
+++ new/sshpass-1.10/missing    2022-05-28 10:21:16.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,9 +207,9 @@
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
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/sshpass-1.09/sshpass.1 new/sshpass-1.10/sshpass.1
--- old/sshpass-1.09/sshpass.1  2021-01-29 13:47:13.000000000 +0100
+++ new/sshpass-1.10/sshpass.1  2022-05-28 10:14:04.000000000 +0200
@@ -1,10 +1,10 @@
-.TH SSHPASS 1 "January 29, 2021" "Lingnu Open Source Consulting" "Sshpass User 
Manual"
+.TH SSHPASS 1 "May 27, 2022" "Shachar Shemesh" "Sshpass User Manual"
 .\" Please adjust this date whenever revising the manpage.
 .SH NAME
 sshpass \- noninteractive ssh password provider
 .SH SYNOPSIS
 .B sshpass
-.RB [ -f\fIfilename | -d\fInum | -p\fIpassword | -e ]
+.RB [ \-f\fIfilename | \-d\fInum | \-p\fIpassword | \-e[\fIenv_var ]]
 .RI [ options ] " command arguments"
 .br
 .SH DESCRIPTION
@@ -35,8 +35,9 @@
 \fInumber\fP is a file descriptor inherited by sshpass from the runner. The
 password is read from the open file descriptor.
 .TP
-.B \-e
-The password is taken from the environment variable "SSHPASS".
+.B \-e\fP[\fIenv_var\fP]
+The password is taken from an environment variable. If \fIenv_var\fP is 
supplied, that is
+the environment variable used. If not, the password is taken from the variable 
\fBSSHPASS\fP.
 .TP
 .B \-P
 Set the password prompt. Sshpass searched for this prompt in the program's
@@ -108,11 +109,6 @@
 SSHPASS=12345 rsync \-\-rsh='sshpass \-e ssh \-l test' host.example.com:path .
 .SH BUGS
 .P
-Sshpass is in its infancy at the moment. As such, bugs are highly possible. In
-particular, if the password is read from stdin (no password option at all), it
-is possible that some of the input aimed to be passed to ssh will be read by
-sshpass and lost.
-.P
 Sshpass utilizes the \fBpty\fR(7) interface to control the TTY for ssh. This 
interface,
 at least on Linux, has a misfeature where if no slave file descriptors are 
open, the
 master pty returns \fBEIO\fR. This is the normal behavior, except a slave pty 
may

Reply via email to