[Pkg-e-commits] [SCM] D-Bus integration for EFL based applications branch, upstream-vcs, updated. de96e02c71c95d629bfde702b223060254b81ef7
raster
raster at alioth.debian.org
Sat May 24 16:10:51 UTC 2008
The following commit has been merged in the upstream-vcs branch:
commit 61760ac1afbd8c71c0024c3024674e1d78df59c0
Author: raster <raster>
Date: Sat May 17 08:52:35 2008 +0000
fix segv. the list frees already on removal. double free.
diff --git a/src/lib/dbus/e_dbus_signal.c b/src/lib/dbus/e_dbus_signal.c
index d410397..fe3221f 100644
--- a/src/lib/dbus/e_dbus_signal.c
+++ b/src/lib/dbus/e_dbus_signal.c
@@ -53,7 +53,6 @@ e_dbus_signal_init(void)
void
e_dbus_signal_shutdown(void)
{
- printf("SHUTDOWN\n");
if (--init) return;
ecore_list_destroy(signal_handlers);
@@ -68,7 +67,6 @@ e_dbus_signal_shutdown(void)
void
e_dbus_signal_handler_free(E_DBus_Signal_Handler *sh)
{
- printf("free: %p\n", sh);
if (sh->sender) free(sh->sender);
if (sh->path) free(sh->path);
if (sh->interface) free(sh->interface);
@@ -89,7 +87,6 @@ cb_name_owner(void *data, DBusMessage *msg, DBusError *err)
{
if (ecore_list_goto(signal_handlers, sh))
ecore_list_remove(signal_handlers);
- e_dbus_signal_handler_free(sh);
dbus_error_free(err);
return;
}
@@ -189,8 +186,6 @@ e_dbus_signal_handler_del(E_DBus_Connection *conn, E_DBus_Signal_Handler *sh)
e_dbus_handler_deletions = 1;
return;
}
- if (!ecore_list_goto(signal_handlers, sh)) return;
- ecore_list_remove(signal_handlers);
strcpy(match, "type='signal'");
len = 13;
@@ -213,7 +208,8 @@ e_dbus_signal_handler_del(E_DBus_Connection *conn, E_DBus_Signal_Handler *sh)
dbus_bus_remove_match(conn->conn, match, NULL);
- e_dbus_signal_handler_free(sh);
+ if (!ecore_list_goto(signal_handlers, sh)) return;
+ ecore_list_remove(signal_handlers);
}
static int
--
D-Bus integration for EFL based applications
More information about the Pkg-e-commits
mailing list