Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/e_dbus
Dir : e17/libs/e_dbus/src/lib/dbus
Modified Files:
e_dbus_signal.c
Log Message:
fix segv. the list frees already on removal. double free.
===================================================================
RCS file: /cvs/e/e17/libs/e_dbus/src/lib/dbus/e_dbus_signal.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- e_dbus_signal.c 7 May 2008 10:36:23 -0000 1.3
+++ e_dbus_signal.c 17 May 2008 08:52:35 -0000 1.4
@@ -53,7 +53,6 @@
void
e_dbus_signal_shutdown(void)
{
- printf("SHUTDOWN\n");
if (--init) return;
ecore_list_destroy(signal_handlers);
@@ -68,7 +67,6 @@
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 @@
{
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_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 @@
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
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs