From e2f5dc440589e1c29e5ceae59ea785ff0e512dc7 Mon Sep 17 00:00:00 2001 From: Monsta Date: Wed, 21 Jan 2015 15:25:20 +0300 Subject: fix careless hack: don't do double-free, avoid weird crashes because backends manager frees that var already. actually, adding ev_backends_manager_get_backends_dir to the public API was still careless. backends manager and epub document jobs seem to be in the different threads, and there's no mutex seen anywhere around. luckily, what we have here is just a reading of a variable that has been assigned only once (in backends_dir function), so it's not as catastrophic as it would be if it was e.g. concurrent writing without a mutex. Closes https://github.com/mate-desktop/atril/pull/124 --- backend/epub/epub-document.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'backend/epub/epub-document.c') diff --git a/backend/epub/epub-document.c b/backend/epub/epub-document.c index ffdce89e..c8354d2d 100644 --- a/backend/epub/epub-document.c +++ b/backend/epub/epub-document.c @@ -1641,7 +1641,7 @@ static void epub_document_add_mathJax(gchar* containeruri,gchar* documentdir) { gchar *containerfilename= g_filename_from_uri(containeruri,NULL,NULL); - gchar *backenddir = ev_backends_manager_get_backends_dir(); + const gchar *backenddir = ev_backends_manager_get_backends_dir(); GString *mathjaxdir = g_string_new(backenddir); g_string_append_printf(mathjaxdir,"/epub/MathJax"); @@ -1675,7 +1675,6 @@ epub_document_add_mathJax(gchar* containeruri,gchar* documentdir) item = item->next; } xml_free_doc(); - g_free(backenddir); g_free(mathjaxref); g_free(containerfilename); g_free(nodedata); -- cgit v1.2.1