diff --git a/_service b/_service index 1e19714..1496f33 100644 --- a/_service +++ b/_service @@ -11,7 +11,7 @@ 0.17.2 --> 0.17.2+git%cd.%h - 4d817cc7e0b620acda8cc45266dc085c5bf48c59 + 1a7ea3b8d8bf9d5ffbbfdc785ace2b81e9f2356d diff --git a/bug-947341_libqb-ipc-fd-memory-leaks.patch b/bug-947341_libqb-ipc-fd-memory-leaks.patch new file mode 100644 index 0000000..10d6762 --- /dev/null +++ b/bug-947341_libqb-ipc-fd-memory-leaks.patch @@ -0,0 +1,30 @@ +commit f5fd0c950ce1bf19fd5186fd2b1f2cc67f5de3ec +Author: Gao,Yan +Date: Tue Oct 6 17:48:05 2015 +0200 + + Fix: ipc: Prevent fd and memory leaks in handle_new_connection() + + In handle_new_connection(), connection_accept() could fail, which would + leave the state of the connection inactive. Previously, in this case, + the socket and the allocated qb_ipcs_connection would be leaked. + +diff --git a/lib/ipc_setup.c b/lib/ipc_setup.c +index 28a0ddc..06257c1 100644 +--- a/lib/ipc_setup.c ++++ b/lib/ipc_setup.c +@@ -556,7 +556,14 @@ send_response: + "Error in connection setup (%s)", + c->description); + } +- qb_ipcs_disconnect(c); ++ ++ if (c->state == QB_IPCS_CONNECTION_INACTIVE) { ++ /* This removes the initial alloc ref */ ++ qb_ipcs_connection_unref(c); ++ qb_ipcc_us_sock_close(sock); ++ } else { ++ qb_ipcs_disconnect(c); ++ } + } + return res; + } diff --git a/libqb-0.17.2+git20150824.4d817cc.tar.bz2 b/libqb-0.17.2+git20150824.4d817cc.tar.bz2 deleted file mode 100644 index 1483b81..0000000 --- a/libqb-0.17.2+git20150824.4d817cc.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55073dfcc15200ee04604a353c40713c18b9013136788ce7b7915d206cd2cab2 -size 129687 diff --git a/libqb-0.17.2+git20151001.1a7ea3b.tar.bz2 b/libqb-0.17.2+git20151001.1a7ea3b.tar.bz2 new file mode 100644 index 0000000..f4ef304 --- /dev/null +++ b/libqb-0.17.2+git20151001.1a7ea3b.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de88b20e4b29a0d6ceb41f0ddd9a4565c05118b2a318ff7713cd1ce59e1b990e +size 129823 diff --git a/libqb.changes b/libqb.changes index a82c529..cbc935b 100644 --- a/libqb.changes +++ b/libqb.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Thu Oct 8 13:18:22 UTC 2015 - ygao@suse.com + +- ipc: Prevent fd and memory leaks in handle_new_connection() (bsc#947341) + * bug-947341_libqb-ipc-fd-memory-leaks.patch + +------------------------------------------------------------------- +Thu Oct 8 13:15:12 UTC 2015 - ygao@suse.com + +- log: don't call dlopen inside dl_iterate_phdr() +- ipc: Don't send the dispatch_del() function a closed fd +- Upstream version cs: 1a7ea3b8d8bf9d5ffbbfdc785ace2b81e9f2356d + ------------------------------------------------------------------- Thu Aug 27 16:16:14 UTC 2015 - ygao@suse.com diff --git a/libqb.spec b/libqb.spec index 452d707..7c17b48 100644 --- a/libqb.spec +++ b/libqb.spec @@ -17,7 +17,7 @@ Name: libqb -Version: 0.17.2+git20150824.4d817cc +Version: 0.17.2+git20151001.1a7ea3b Release: 0 Summary: An IPC library for high performance servers License: LGPL-2.1+ @@ -26,6 +26,7 @@ Url: https://github.com/ClusterLabs/libqb Source0: %{name}-%{version}.tar.bz2 Source1: baselibs.conf Patch1: libqb-configure-package-version.patch +Patch2: bug-947341_libqb-ipc-fd-memory-leaks.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf @@ -68,6 +69,7 @@ tracing, ipc, and poll. %prep %setup -q -n %{name}-%{version} %patch1 -p1 +%patch2 -p1 %build ./autogen.sh