[evolution-data-server] Bug 649433 - e-calendar-factory SIGSEGV while reading hash_table



commit 671aac12c869626339923eee804f604a1d3c4e3c
Author: David Woodhouse <David Woodhouse intel com>
Date:   Mon May 9 14:37:27 2011 +0100

    Bug 649433 - e-calendar-factory SIGSEGV while reading hash_table
    
    The root cause of this issue was modules being loaded with RTLD_GLOBAL, and
    having conflicting "global" symbols.
    
    There is no reason for modules to be exporting their own symbols to the rest
    of the process; add the G_MODULE_BIND_LOCAL flag to the g_module_open() call
    to prevent that.

 libebackend/e-data-server-module.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/libebackend/e-data-server-module.c b/libebackend/e-data-server-module.c
index 4630081..f4a4934 100644
--- a/libebackend/e-data-server-module.c
+++ b/libebackend/e-data-server-module.c
@@ -86,7 +86,8 @@ e_data_server_module_load (GTypeModule *gmodule)
 
 	module = E_DATA_SERVER_MODULE (gmodule);
 
-	module->library = g_module_open (module->path, G_MODULE_BIND_LAZY);
+	module->library = g_module_open (module->path,
+				G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
 
 	if (!module->library) {
 		g_warning ("%s", g_module_error ());



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]