Hello community, here is the log from the commit of package libqb for openSUSE:Factory checked in at 2014-01-30 14:56:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libqb (Old) and /work/SRC/openSUSE:Factory/.libqb.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libqb" Changes: -------- --- /work/SRC/openSUSE:Factory/libqb/libqb.changes 2014-01-13 12:03:04.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.libqb.new/libqb.changes 2014-01-30 14:56:01.000000000 +0100 @@ -1,0 +2,7 @@ +Fri Jan 17 13:34:43 UTC 2014 - [email protected] + +- ipc: Remove ipc connection reference given to dispatch functions (bnc#857779) +- ipc: Fixes memory leak in server connection accept when client partially connects (bnc#857779) +- Upstream version cs: d9706f75619976e334a109d0dbfdeac3b1074fe4 + +------------------------------------------------------------------- Old: ---- libqb-0.16.0+git20140108.b579f7a.tar.bz2 New: ---- libqb-0.16.0+git20140116.d9706f7.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libqb.spec ++++++ --- /var/tmp/diff_new_pack.vkw2Z2/_old 2014-01-30 14:56:01.000000000 +0100 +++ /var/tmp/diff_new_pack.vkw2Z2/_new 2014-01-30 14:56:01.000000000 +0100 @@ -17,7 +17,7 @@ Name: libqb -Version: 0.16.0+git20140108.b579f7a +Version: 0.16.0+git20140116.d9706f7 Release: 0 Summary: An IPC library for high performance servers License: LGPL-2.1+ ++++++ _service ++++++ --- /var/tmp/diff_new_pack.vkw2Z2/_old 2014-01-30 14:56:01.000000000 +0100 +++ /var/tmp/diff_new_pack.vkw2Z2/_new 2014-01-30 14:56:01.000000000 +0100 @@ -11,7 +11,7 @@ <param name="version">0.16.0</param> --> <param name="versionformat">0.16.0+git%cd.%h</param> - <param name="revision">b579f7af151f453a870bbaac037084df13b45ef9</param> + <param name="revision">d9706f75619976e334a109d0dbfdeac3b1074fe4</param> </service> <service name="recompress" mode="disabled"> ++++++ libqb-0.16.0+git20140108.b579f7a.tar.bz2 -> libqb-0.16.0+git20140116.d9706f7.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.16.0+git20140108.b579f7a/lib/ipc_shm.c new/libqb-0.16.0+git20140116.d9706f7/lib/ipc_shm.c --- old/libqb-0.16.0+git20140108.b579f7a/lib/ipc_shm.c 2014-01-09 16:06:39.000000000 +0100 +++ new/libqb-0.16.0+git20140116.d9706f7/lib/ipc_shm.c 2014-01-17 14:22:13.000000000 +0100 @@ -231,7 +231,6 @@ qb_ipcc_us_sock_close(c->setup.u.us.sock); (void)c->service->poll_fns.dispatch_del(c->setup.u.us.sock); c->setup.u.us.sock = -1; - qb_ipcs_connection_unref(c); } } if (c->state == QB_IPCS_CONNECTION_SHUTTING_DOWN || @@ -323,9 +322,7 @@ c->setup.u.us.sock, POLLIN | POLLPRI | POLLNVAL, c, qb_ipcs_dispatch_connection_request); - if (res == 0) { - qb_ipcs_connection_ref(c); - } else { + if (res != 0) { qb_util_log(LOG_ERR, "Error adding socket to mainloop (%s).", c->description); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.16.0+git20140108.b579f7a/lib/ipc_socket.c new/libqb-0.16.0+git20140116.d9706f7/lib/ipc_socket.c --- old/libqb-0.16.0+git20140108.b579f7a/lib/ipc_socket.c 2014-01-09 16:06:39.000000000 +0100 +++ new/libqb-0.16.0+git20140116.d9706f7/lib/ipc_socket.c 2014-01-17 14:22:13.000000000 +0100 @@ -579,7 +579,6 @@ c->description); return res; } - qb_ipcs_connection_ref(c); res = c->service->poll_fns.dispatch_add(c->service->poll_priority, c->setup.u.us.sock, @@ -592,7 +591,6 @@ (void)c->service->poll_fns.dispatch_del(c->request.u.us.sock); return res; } - qb_ipcs_connection_ref(c); return res; } @@ -600,10 +598,7 @@ _sock_rm_from_mainloop(struct qb_ipcs_connection *c) { (void)c->service->poll_fns.dispatch_del(c->request.u.us.sock); - qb_ipcs_connection_unref(c); - (void)c->service->poll_fns.dispatch_del(c->setup.u.us.sock); - qb_ipcs_connection_unref(c); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libqb-0.16.0+git20140108.b579f7a/lib/ipcs.c new/libqb-0.16.0+git20140116.d9706f7/lib/ipcs.c --- old/libqb-0.16.0+git20140108.b579f7a/lib/ipcs.c 2014-01-09 16:06:39.000000000 +0100 +++ new/libqb-0.16.0+git20140116.d9706f7/lib/ipcs.c 2014-01-17 14:22:13.000000000 +0100 @@ -608,6 +608,10 @@ c->service->funcs.disconnect(c); c->state = QB_IPCS_CONNECTION_INACTIVE; c->service->stats.closed_connections++; + + /* This removes the initial alloc ref */ + qb_ipcs_connection_unref(c); + /* return early as it's an incomplete connection. */ return; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
