Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package booth for openSUSE:Factory checked 
in at 2022-09-09 18:28:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/booth (Old)
 and      /work/SRC/openSUSE:Factory/.booth.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "booth"

Fri Sep  9 18:28:13 2022 rev:49 rq:1002264 version:1.0+20220724.dce51f9

Changes:
--------
--- /work/SRC/openSUSE:Factory/booth/booth.changes      2021-09-30 
23:44:49.776567909 +0200
+++ /work/SRC/openSUSE:Factory/.booth.new.2083/booth.changes    2022-09-09 
18:29:48.453311156 +0200
@@ -1,0 +2,13 @@
+Thu Jul 28 09:26:59 UTC 2022 - pgaj...@suse.com
+
+- Update to version 1.0+20220724.dce51f9:
+  * ticket: Fix compiler warning
+  * rpm: use new package name for pacemaker devel on opensuse
+  * Revert "Refactor: main: substitute is_auth_req macro"
+  * doc: Describe debug config file option
+  * handler: Use only signal-safe functions
+  * main: Use only signal-safe functions
+  * fix bashisms (use printf instead of echo)
+- fixes CVE-2022-2553 [bsc#1201946]
+
+-------------------------------------------------------------------

Old:
----
  booth-1.0+20210519.bfb2f92.tar.bz2

New:
----
  booth-1.0+20220724.dce51f9.tar.bz2

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

Other differences:
------------------
++++++ booth.spec ++++++
--- /var/tmp/diff_new_pack.q33CEm/_old  2022-09-09 18:29:48.857312193 +0200
+++ /var/tmp/diff_new_pack.q33CEm/_new  2022-09-09 18:29:48.861312202 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package booth
 #
-# 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
@@ -29,7 +29,7 @@
 %define _fwdefdir %{_prefix}/lib/firewalld/services
 
 Name:           booth
-Version:        1.0+20210519.bfb2f92
+Version:        1.0+20220724.dce51f9
 Release:        0
 Summary:        Ticket Manager for Multi-site Clusters
 License:        GPL-2.0-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.q33CEm/_old  2022-09-09 18:29:48.889312275 +0200
+++ /var/tmp/diff_new_pack.q33CEm/_new  2022-09-09 18:29:48.893312285 +0200
@@ -1,11 +1,11 @@
 <services>
   <service name="tar_scm" mode="disabled">
-    <param name="url">git://github.com/ClusterLabs/booth.git</param>
+    <param name="url">https://github.com/ClusterLabs/booth.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
     <param name="filename">booth</param>
     <param name="versionformat">1.0+%cd.%h</param>
-    <param name="revision">master</param>
+    <param name="revision">main</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.q33CEm/_old  2022-09-09 18:29:48.909312326 +0200
+++ /var/tmp/diff_new_pack.q33CEm/_new  2022-09-09 18:29:48.913312336 +0200
@@ -1,6 +1,8 @@
 <servicedata>
 <service name="tar_scm">
             <param name="url">git://github.com/ClusterLabs/booth.git</param>
-          <param 
name="changesrevision">7a456e37a74e78c31557dc04022a4430493ae5b4</param></service></servicedata>
+          <param 
name="changesrevision">da79b8ba28ad4837a0fee13e5f8fb6f89fe0e24c</param></service><service
 name="tar_scm">
+                <param 
name="url">https://github.com/ClusterLabs/booth.git</param>
+              <param 
name="changesrevision">7643788fe98ab144f4d42a4268aff665f62b26c0</param></service></servicedata>
 (No newline at EOF)
 

++++++ booth-1.0+20210519.bfb2f92.tar.bz2 -> booth-1.0+20220724.dce51f9.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/.gitignore 
new/booth-1.0+20220724.dce51f9/.gitignore
--- old/booth-1.0+20210519.bfb2f92/.gitignore   1970-01-01 01:00:00.000000000 
+0100
+++ new/booth-1.0+20220724.dce51f9/.gitignore   2022-07-24 17:15:24.000000000 
+0200
@@ -0,0 +1,55 @@
+Makefile.in
+Makefile
+compile
+autom4te.cache
+aclocal.m4
+config.guess
+config.status
+config.sub
+configure
+depcomp
+install-sh
+missing
+test-driver
+*.trs
+*.log
+*.rpm
+*.o
+.deps
+.version
+.dirstamp
+
+booth-*.tar*
+
+conf/booth*.service
+docs/*.8
+script/service-runnable
+script/unit-test.py
+src/b_config.h.in
+src/b_config.h
+src/booth_config.h
+src/boothd
+src/stamp-h1
+src/stamp-h2
+test/boothtestenv.py
+test/runtests.py
+
+booth.spec
+booth.pc
+
+# cscope files
+cscope.*
+ncscope.*
+
+# ctags files
+tags
+
+# vim temp files
+.*.sw?
+*~
+
+# test suite random files
+*.pyc
+__pycache__
+
+cov*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/booth.spec.in 
new/booth-1.0+20220724.dce51f9/booth.spec.in
--- old/booth-1.0+20210519.bfb2f92/booth.spec.in        2021-05-19 
22:29:59.000000000 +0200
+++ new/booth-1.0+20220724.dce51f9/booth.spec.in        2022-07-24 
17:15:24.000000000 +0200
@@ -80,8 +80,12 @@
 %if 0%{?fedora} || 0%{?centos} || 0%{?rhel}
 BuildRequires:  pacemaker-libs-devel
 %else
+%if 0%{?suse_version} > 1500
+BuildRequires:  libpacemaker3-devel
+%else
 BuildRequires:  libpacemaker-devel
 %endif
+%endif
 %if 0%{?with_glue}
 %if 0%{?fedora} || 0%{?centos} || 0%{?rhel}
 BuildRequires:  cluster-glue-libs-devel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/docs/boothd.8.txt 
new/booth-1.0+20220724.dce51f9/docs/boothd.8.txt
--- old/booth-1.0+20210519.bfb2f92/docs/boothd.8.txt    2021-05-19 
22:29:59.000000000 +0200
+++ new/booth-1.0+20220724.dce51f9/docs/boothd.8.txt    2022-07-24 
17:15:24.000000000 +0200
@@ -376,6 +376,10 @@
 controlled by Raft algorithm). Assign the strings "manual" or
 "MANUAL" to define the ticket as manually controlled.
 
+*'debug'*::
+       Specifies the debug output level. Alternative to
+       command line argument. Effective only for 'daemon'
+       mode of operation.
 
 One example of a booth configuration file:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/booth-1.0+20210519.bfb2f92/script/lsb/booth-arbitrator 
new/booth-1.0+20220724.dce51f9/script/lsb/booth-arbitrator
--- old/booth-1.0+20210519.bfb2f92/script/lsb/booth-arbitrator  2021-05-19 
22:29:59.000000000 +0200
+++ new/booth-1.0+20220724.dce51f9/script/lsb/booth-arbitrator  2022-07-24 
17:15:24.000000000 +0200
@@ -57,7 +57,7 @@
 }
 
 status() {
-       echo -n "BOOTH daemon is "
+       printf "BOOTH daemon is "
        if check_status; then
                # shellcheck disable=SC2154
                echo "running - PID $booth_lockpid for $booth_cfg_name, 
$booth_addr_string:$booth_port"
@@ -79,7 +79,7 @@
                return 0
                ;;
        $BOOTH_ERROR_GENERIC|$BOOTH_DAEMON_NOT_RUNNING)
-               echo -n $"Starting BOOTH arbitrator daemon: "
+               printf "Starting BOOTH arbitrator daemon: "
                startproc $exec start "${cnf:+-c$cnf}"
                rc_status -v
                ;;
@@ -102,7 +102,7 @@
        *) return 1;;
        esac
 
-       echo -n $"Stopping BOOTH arbitrator daemon: "
+       printf "Stopping BOOTH arbitrator daemon: "
 #      $exec stop "${cnf:+-c$cnf}"
 #      sleep 1
        pkill -TERM -s $booth_lockpid boothd
@@ -163,7 +163,7 @@
        foreach condrestart
        ;;
 *)
-       echo $"Usage: $0 
{start|stop|restart|try-restart|condrestart|reload|force-reload|status}"
+       echo "Usage: $0 
{start|stop|restart|try-restart|condrestart|reload|force-reload|status}"
        exit 2
        ;;
 esac
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/src/handler.c 
new/booth-1.0+20220724.dce51f9/src/handler.c
--- old/booth-1.0+20210519.bfb2f92/src/handler.c        2021-05-19 
22:29:59.000000000 +0200
+++ new/booth-1.0+20220724.dce51f9/src/handler.c        2022-07-24 
17:15:24.000000000 +0200
@@ -155,7 +155,6 @@
 static void ignore_rest(int sig)
 {
        signal(SIGTERM, SIG_IGN);
-       log_info("external programs handler caught TERM, ignoring status of 
external test programs");
        ignore_status = 1;
        if (curr_pid > 0) {
                (void)kill(curr_pid, SIGTERM);
@@ -230,6 +229,14 @@
                                rv = test_exit_status(tk, prog, status, 1);
                                if (rv)
                                        _exit(rv);
+                       } else {
+                               /*
+                                * To make ignore_rest function signal safe 
log_info
+                                * must be removed from signal function. 
Information
+                                * about signal delivery is important so put it 
here.
+                                */
+                               log_info("external programs handler caught 
TERM, ignoring "
+                                   "status of external test programs");
                        }
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/src/main.c 
new/booth-1.0+20220724.dce51f9/src/main.c
--- old/booth-1.0+20210519.bfb2f92/src/main.c   2021-05-19 22:29:59.000000000 
+0200
+++ new/booth-1.0+20220724.dce51f9/src/main.c   2022-07-24 17:15:24.000000000 
+0200
@@ -109,6 +109,14 @@
 struct booth_config *booth_conf;
 struct command_line cl;
 
+/*
+ * Global signal handlers variables
+ */
+static int sig_exit_handler_called = 0;
+static int sig_exit_handler_sig = 0;
+static int sig_usr1_handler_called = 0;
+static int sig_chld_handler_called = 0;
+
 static void client_alloc(void)
 {
        int i;
@@ -356,7 +364,7 @@
        if (rv < 0)
                goto out;
 
-       if (is_auth_req()) {
+       if (booth_conf->authfile[0] != '\0') {
                rv = read_authkey();
                if (rv < 0)
                        goto out;
@@ -480,6 +488,24 @@
        return 0;
 }
 
+static int process_signals(void)
+{
+       if (sig_exit_handler_called) {
+               log_info("caught signal %d", sig_exit_handler_sig);
+               return 1;
+       }
+       if (sig_usr1_handler_called) {
+               sig_usr1_handler_called = 0;
+               tickets_log_info();
+       }
+       if (sig_chld_handler_called) {
+               sig_chld_handler_called = 0;
+               wait_child(SIGCHLD);
+       }
+
+       return 0;
+}
+
 static int loop(int fd)
 {
        void (*workfn) (int ci);
@@ -532,6 +558,10 @@
                }
 
                process_tickets();
+
+               if (process_signals() != 0) {
+                       return 0;
+               }
        }
 
        return 0;
@@ -1257,11 +1287,15 @@
 
        rlimit.rlim_cur = RLIM_INFINITY;
        rlimit.rlim_max = RLIM_INFINITY;
-       setrlimit(RLIMIT_MEMLOCK, &rlimit);
-       rv = mlockall(MCL_CURRENT | MCL_FUTURE);
+       rv = setrlimit(RLIMIT_MEMLOCK, &rlimit);
        if (rv < 0) {
-               log_error("mlockall failed");
-       }
+               log_error("setrlimit failed");
+       } else {
+                rv = mlockall(MCL_CURRENT | MCL_FUTURE);
+                if (rv < 0) {
+                        log_error("mlockall failed");
+                }
+        }
 
        rv = sched_get_priority_max(SCHED_RR);
        if (rv != -1) {
@@ -1414,8 +1448,18 @@
 
 static void sig_exit_handler(int sig)
 {
-       log_info("caught signal %d", sig);
-       exit(0);
+       sig_exit_handler_sig = sig;
+       sig_exit_handler_called = 1;
+}
+
+static void sig_usr1_handler(int sig)
+{
+       sig_usr1_handler_called = 1;
+}
+
+static void sig_chld_handler(int sig)
+{
+       sig_chld_handler_called = 1;
 }
 
 static int do_server(int type)
@@ -1442,7 +1486,7 @@
        /*
         * Register signal and exit handler
         */
-       signal(SIGUSR1, (__sighandler_t)tickets_log_info);
+       signal(SIGUSR1, (__sighandler_t)sig_usr1_handler);
        signal(SIGTERM, (__sighandler_t)sig_exit_handler);
        signal(SIGINT, (__sighandler_t)sig_exit_handler);
        /* we'll handle errors there and then */
@@ -1493,7 +1537,7 @@
        }
 #endif
 
-       signal(SIGCHLD, (__sighandler_t)wait_child);
+       signal(SIGCHLD, (__sighandler_t)sig_chld_handler);
        rv = loop(lock_fd);
 
        return rv;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/src/ticket.c 
new/booth-1.0+20220724.dce51f9/src/ticket.c
--- old/booth-1.0+20210519.bfb2f92/src/ticket.c 2021-05-19 22:29:59.000000000 
+0200
+++ new/booth-1.0+20220724.dce51f9/src/ticket.c 2022-07-24 17:15:24.000000000 
+0200
@@ -395,7 +395,8 @@
        char timeout_str[64];
        char pending_str[64];
        char *data, *cp;
-       int i, alloc, site_index;
+       int i, site_index;
+       size_t alloc;
        time_t ts;
        int multiple_grant_warning_length = 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/booth-1.0+20210519.bfb2f92/test/serverenv.py 
new/booth-1.0+20220724.dce51f9/test/serverenv.py
--- old/booth-1.0+20210519.bfb2f92/test/serverenv.py    2021-05-19 
22:29:59.000000000 +0200
+++ new/booth-1.0+20220724.dce51f9/test/serverenv.py    2022-07-24 
17:15:24.000000000 +0200
@@ -133,8 +133,14 @@
         start = time.time()
         wait = 0.1
         while True:
-            if must_exist and os.path.exists(lock_file) and 
os.path.getsize(lock_file) > 0:
-                return True
+            if must_exist and os.path.exists(lock_file):
+                # Lock file must contain single line
+                l = open(lock_file)
+                lines = l.readlines()
+                l.close()
+
+                if len(lines) == 1:
+                    return True
             if not must_exist and not os.path.exists(lock_file):
                 return True
             elapsed = time.time() - start

Reply via email to