diff --git a/.gitignore b/.gitignore index ee3320f..3ea4aba 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libqb-0.16.0.tar.xz +SOURCES/libqb-0.17.1.tar.xz diff --git a/.libqb.metadata b/.libqb.metadata index dda0f6b..6211ac9 100644 --- a/.libqb.metadata +++ b/.libqb.metadata @@ -1 +1 @@ -55ca0a3d2e5dd1f7eeeae60e5dfbd76fe7f270c0 SOURCES/libqb-0.16.0.tar.xz +fef008494b556518ddbdd88eeac844683396a686 SOURCES/libqb-0.17.1.tar.xz diff --git a/SOURCES/bz1018091-log-Filtering-by-function-and-file-must-match-ex.patch b/SOURCES/bz1018091-log-Filtering-by-function-and-file-must-match-ex.patch deleted file mode 100644 index 8d1c19e..0000000 --- a/SOURCES/bz1018091-log-Filtering-by-function-and-file-must-match-ex.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 9abb68637d6d448cccfa06daa05d9c5bf59f5d3e Mon Sep 17 00:00:00 2001 -From: David Vossel -Date: Thu, 17 Oct 2013 21:44:12 -0500 -Subject: [PATCH] Fix: log: Filtering by function and file must match exactly, - no substring matches - ---- - lib/log.c | 4 ++-- - tests/check_log.c | 6 ++++-- - 2 files changed, 6 insertions(+), 4 deletions(-) - -diff --git a/lib/log.c b/lib/log.c -index 6d3435e..3b4d6bd 100644 ---- a/lib/log.c -+++ b/lib/log.c -@@ -103,9 +103,9 @@ _cs_matches_filter_(struct qb_log_callsite *cs, - snprintf(token, 499, "%.*s", (int)(next - offset), offset); - - if (type == QB_LOG_FILTER_FILE) { -- match = (strstr(cs->filename, token) != NULL); -+ match = (strcmp(cs->filename, token) == 0) ? 1 : 0; - } else { -- match = (strstr(cs->function, token) != NULL); -+ match = (strcmp(cs->function, token) == 0) ? 1 : 0; - } - if (!match && next[0] != 0) { - next++; -diff --git a/tests/check_log.c b/tests/check_log.c -index 3653b50..896bd7d 100644 ---- a/tests/check_log.c -+++ b/tests/check_log.c -@@ -191,6 +191,7 @@ _test_logger(int32_t t, - test_buf[0] = '\0'; - qb_log_target_format(t, cs, timestamp, msg, test_buf); - test_priority = cs->priority; -+ - num_msgs++; - } - -@@ -282,6 +283,7 @@ START_TEST(test_log_basic) - rc = qb_log_ctl(t, QB_LOG_CONF_ENABLED, QB_TRUE); - ck_assert_int_eq(rc, 0); - -+ /* captures last log */ - memset(test_buf, 0, sizeof(test_buf)); - test_priority = 0; - num_msgs = 0; -@@ -304,7 +306,7 @@ START_TEST(test_log_basic) - qb_log_filter_ctl(t, QB_LOG_FILTER_CLEAR_ALL, - QB_LOG_FILTER_FILE, "*", LOG_TRACE); - qb_log_filter_ctl(t, QB_LOG_FILTER_ADD, -- QB_LOG_FILTER_FUNCTION, "log_it_please", LOG_WARNING); -+ QB_LOG_FILTER_FUNCTION, "otherlogging,log_it_please,morelogging", LOG_WARNING); - - num_msgs = 0; - qb_log(LOG_ERR, "try if you: log_it_please()"); -@@ -336,7 +338,7 @@ START_TEST(test_log_basic) - qb_log_filter_ctl(t, QB_LOG_FILTER_CLEAR_ALL, - QB_LOG_FILTER_FILE, "*", LOG_TRACE); - qb_log_filter_ctl(t, QB_LOG_FILTER_ADD, -- QB_LOG_FILTER_FILE, __FILE__, LOG_DEBUG); -+ QB_LOG_FILTER_FILE, "fakefile.c,"__FILE__",otherfakefile", LOG_DEBUG); - /* - * make sure we can pass in a null filename or function name. - */ --- -1.8.4.2 - diff --git a/SOURCES/bz1021597-set-SO_PASSCRED-sock-option.patch b/SOURCES/bz1021597-set-SO_PASSCRED-sock-option.patch deleted file mode 100644 index e78d801..0000000 --- a/SOURCES/bz1021597-set-SO_PASSCRED-sock-option.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 81ca7d30de95d404b13bc5d61cb3a1a99d3d73ea Mon Sep 17 00:00:00 2001 -From: Jan Friesse -Date: Mon, 21 Oct 2013 17:14:02 +0200 -Subject: [PATCH] ipc_setup: Set SO_PASSCRED on listener socket - -This is needed, because newer kernels doesn't correctly support setting -SO_PASSCRED on sockets returned by accept call, but socket option must -be set on server socket (before accept call). - -For more details, see: -http://patchwork.ozlabs.org/patch/284366/ - -Signed-off-by: Jan Friesse ---- - lib/ipc_setup.c | 6 ++++++ - 1 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/lib/ipc_setup.c b/lib/ipc_setup.c -index 97c858c..b6beb6a 100644 ---- a/lib/ipc_setup.c -+++ b/lib/ipc_setup.c -@@ -349,6 +349,9 @@ qb_ipcs_us_publish(struct qb_ipcs_service * s) - { - struct sockaddr_un un_addr; - int32_t res; -+#ifdef SO_PASSCRED -+ int on = 1; -+#endif - - /* - * Create socket for IPC clients, name socket, listen for connections -@@ -407,6 +410,9 @@ qb_ipcs_us_publish(struct qb_ipcs_service * s) - #if !defined(QB_LINUX) && !defined(QB_CYGWIN) - res = chmod(un_addr.sun_path, S_IRWXU | S_IRWXG | S_IRWXO); - #endif -+#ifdef SO_PASSCRED -+ setsockopt(s->server_sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on)); -+#endif - if (listen(s->server_sock, SERVER_BACKLOG) == -1) { - qb_util_perror(LOG_ERR, "socket listen failed"); - } --- -1.7.1 - diff --git a/SOURCES/bz1063415-corosync-crash-fixes.patch b/SOURCES/bz1063415-corosync-crash-fixes.patch deleted file mode 100644 index 4914902..0000000 --- a/SOURCES/bz1063415-corosync-crash-fixes.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 6a2ff420e12211785683f3674fee968893144696 Mon Sep 17 00:00:00 2001 -From: David Vossel -Date: Fri, 17 Jan 2014 11:22:24 -0600 -Subject: [PATCH] High: ipcs: Prevent ipc server use after free. - -The ipc server registers the bind socket to -the poll loop in order to be alerted to new -connection requests. Upon shutdown, the ipc server -does not remove this poll entry. This patch fixes -this use after free. ---- - lib/ipc_setup.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/lib/ipc_setup.c b/lib/ipc_setup.c -index 3c22e6f..fc3ce5b 100644 ---- a/lib/ipc_setup.c -+++ b/lib/ipc_setup.c -@@ -431,6 +431,7 @@ int32_t - qb_ipcs_us_withdraw(struct qb_ipcs_service * s) - { - qb_util_log(LOG_INFO, "withdrawing server sockets"); -+ s->poll_fns.dispatch_del(s->server_sock); - shutdown(s->server_sock, SHUT_RDWR); - close(s->server_sock); - return 0; --- -1.8.4.2 - diff --git a/SOURCES/fixes-compile-time-make-test-issue.patch b/SOURCES/fixes-compile-time-make-test-issue.patch deleted file mode 100644 index e60f94c..0000000 --- a/SOURCES/fixes-compile-time-make-test-issue.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 441ee1b952ce8cd6e7d9fa6189af3b5921a1ccc3 Mon Sep 17 00:00:00 2001 -From: David Vossel -Date: Mon, 20 Jan 2014 16:59:52 -0600 -Subject: [PATCH] Low: tests: Fixes compile time issue with make check - ---- - tests/file_change_bytes.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/file_change_bytes.c b/tests/file_change_bytes.c -index 3a86f92..a725278 100644 ---- a/tests/file_change_bytes.c -+++ b/tests/file_change_bytes.c -@@ -51,8 +51,8 @@ int main(int argc, char *argv[]) - { - FILE *fi, *fo; - int i; -- char *input_file_name; -- char *output_file_name; -+ const char *input_file_name; -+ const char *output_file_name; - int no_bytes; - char *ep; - int ch; --- -1.8.4.2 - diff --git a/SPECS/libqb.spec b/SPECS/libqb.spec index 73f8a99..7386959 100644 --- a/SPECS/libqb.spec +++ b/SPECS/libqb.spec @@ -1,16 +1,12 @@ Name: libqb -Version: 0.16.0 -Release: 6%{?dist} +Version: 0.17.1 +Release: 1%{?dist} Summary: An IPC library for high performance servers Group: System Environment/Libraries License: LGPLv2+ URL: http://www.libqb.org Source0: https://fedorahosted.org/releases/q/u/quarterback/%{name}-%{version}.tar.xz -Patch0: bz1021597-set-SO_PASSCRED-sock-option.patch -Patch1: bz1018091-log-Filtering-by-function-and-file-must-match-ex.patch -Patch2: fixes-compile-time-make-test-issue.patch -Patch3: bz1063415-corosync-crash-fixes.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libtool doxygen procps check-devel automake autoconf @@ -23,10 +19,6 @@ Initially these are IPC and poll. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 # work-around for broken epoll in rawhide/f17 %build @@ -75,6 +67,21 @@ developing applications that use %{name}. %{_mandir}/man8/qb-blackbox.8.gz %changelog +* Tue Aug 26 2014 David Vossel - 0.17.1-1 + Fix: ipcs: Correctly allocate receive buffer size + Fix: ipc_socket: Signalhandler must be resetted to Default, use only cleanup_sigpipe to return from qb_ipc_dgram_sock_setup. + Fix: trie: allow modifying the trie map during the notify callback + Fix: fix invalid option when run 'ipcclient -h' + Fix: epoll: don't miss poll events under high load + Fix: ipc_shm: fix error handling in qb_ipcs_shm_connect() + Fix: ringbuffer: fix size in qb_rb_create_from_file() + Fix: ringbuffer: fix qb_rb_open_2() debug format string + Fix: trie: fixes regression caused by ref count refactoring + Fix: ipcc: Properly timeout during recv when timeout value is provided + + Resolves: rhbz#1110043 + Resolves: rhbz#975903 + * Mon Feb 10 2014 David Vossel - 0.16.0-6 - Fixes use after free in ipc server