Hello community, here is the log from the commit of package libqb for openSUSE:Factory checked in at 2017-03-11 15:18:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqb (Old) and /work/SRC/openSUSE:Factory/.libqb.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "libqb" Sat Mar 11 15:18:37 2017 rev:23 rq:477312 version:1.0.1+git20170306.59eacf0 Changes: -------- --- /work/SRC/openSUSE:Factory/libqb/libqb.changes 2017-03-03 14:36:42.340020479 +0100 +++ /work/SRC/openSUSE:Factory/.libqb.new/libqb.changes 2017-03-11 15:18:38.464009908 +0100 @@ -1,0 +2,8 @@ +Mon Mar 6 15:49:36 UTC 2017 - ygao@suse.com + +- loop: Fix splint error +- loop: Also set signals changed in qb_loop_signal_mod() back to SIG_DFL (bsc#1026176) +- loop: don't override external signal handlers (bsc#1026176) +- Upstream version cs: 59eacf07dd92af6917ed351c0c5e51ec5237965c + +------------------------------------------------------------------- Old: ---- libqb-1.0.1+git20170131.afdff97.tar.bz2 New: ---- libqb-1.0.1+git20170306.59eacf0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqb.spec ++++++ --- /var/tmp/diff_new_pack.ajBkUa/_old 2017-03-11 15:18:39.087921617 +0100 +++ /var/tmp/diff_new_pack.ajBkUa/_new 2017-03-11 15:18:39.091921051 +0100 @@ -19,7 +19,7 @@ %bcond_without check Name: libqb -Version: 1.0.1+git20170131.afdff97 +Version: 1.0.1+git20170306.59eacf0 Release: 0 Summary: An IPC library for high performance servers License: LGPL-2.1+ ++++++ _service ++++++ --- /var/tmp/diff_new_pack.ajBkUa/_old 2017-03-11 15:18:39.123916524 +0100 +++ /var/tmp/diff_new_pack.ajBkUa/_new 2017-03-11 15:18:39.127915958 +0100 @@ -11,7 +11,7 @@ <param name="version">1.0.1</param> --> <param name="versionformat">1.0.1+git%cd.%h</param> - <param name="revision">afdff97f1af8e1be916816ad8b6d5530fa7c6637</param> + <param name="revision">59eacf07dd92af6917ed351c0c5e51ec5237965c</param> </service> <service name="recompress" mode="disabled"> ++++++ libqb-1.0.1+git20170131.afdff97.tar.bz2 -> libqb-1.0.1+git20170306.59eacf0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-1.0.1+git20170131.afdff97/lib/loop_poll.c new/libqb-1.0.1+git20170306.59eacf0/lib/loop_poll.c --- old/libqb-1.0.1+git20170131.afdff97/lib/loop_poll.c 2017-01-31 11:41:29.000000000 +0100 +++ new/libqb-1.0.1+git20170306.59eacf0/lib/loop_poll.c 2017-03-06 15:31:57.000000000 +0100 @@ -643,8 +643,6 @@ if (needed) { sigaddset(&s->signal_superset, i); sigaction(i, &sa, NULL); - } else { - (void)signal(i, SIG_DFL); } } } @@ -725,6 +723,7 @@ sig->p = p; if (sig->signal != the_sig) { + (void)signal(sig->signal, SIG_DFL); sig->signal = the_sig; _adjust_sigactions_(s); } @@ -775,6 +774,7 @@ } qb_list_del(&sig->item.list); + (void)signal(sig->signal, SIG_DFL); free(sig); _adjust_sigactions_(s); return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-1.0.1+git20170131.afdff97/tests/check_loop.c new/libqb-1.0.1+git20170306.59eacf0/tests/check_loop.c --- old/libqb-1.0.1+git20170131.afdff97/tests/check_loop.c 2017-01-31 11:41:29.000000000 +0100 +++ new/libqb-1.0.1+git20170306.59eacf0/tests/check_loop.c 2017-03-06 15:31:57.000000000 +0100 @@ -605,6 +605,36 @@ } END_TEST +/* Globals for this test only */ +static int our_signal_called = 0; +static qb_loop_t *this_l; +static void handle_nonqb_signal(int num) +{ + our_signal_called = 1; + qb_loop_job_add(this_l, QB_LOOP_LOW, NULL, job_stop); +} + +START_TEST(test_loop_dont_override_other_signals) +{ + qb_loop_signal_handle handle; + + this_l = qb_loop_create(); + fail_if(this_l == NULL); + + signal(SIGUSR1, handle_nonqb_signal); + + qb_loop_signal_add(this_l, QB_LOOP_HIGH, SIGINT, + this_l, sig_handler, &handle); + kill(getpid(), SIGUSR1); + qb_loop_run(this_l); + + ck_assert_int_eq(our_signal_called, 1); + + qb_loop_destroy(this_l); +} +END_TEST + + START_TEST(test_loop_sig_only_get_one) { int res; @@ -706,6 +736,7 @@ add_tcase(s, tc, test_loop_sig_handling, 10); add_tcase(s, tc, test_loop_sig_only_get_one); add_tcase(s, tc, test_loop_sig_delete); + add_tcase(s, tc, test_loop_dont_override_other_signals); return s; }