From 75c800e197ac5d53ca6639fc77238a872002124d Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 11 Dec 2010 17:16:19 +0100 Subject: [PATCH 1/3] Fix a regression from f91bea5f. --- zathura.c | 1 + 1 file changed, 1 insertion(+) diff --git a/zathura.c b/zathura.c index 32562f3..07ae6b6 100644 --- a/zathura.c +++ b/zathura.c @@ -1063,6 +1063,7 @@ close_file(gboolean keep_monitor) g_free(Zathura.Bookmarks.bookmarks[i].id); } free(Zathura.Bookmarks.bookmarks); + Zathura.Bookmarks.bookmarks = NULL; Zathura.Bookmarks.number_of_bookmarks = 0; /* convert file and save it */ From 19ff39b6c6bd05c93ed9ddb053d47ecfdeae0fb7 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 11 Dec 2010 17:17:31 +0100 Subject: [PATCH 2/3] Make :open ~/some/file.pdf work again. --- zathura.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/zathura.c b/zathura.c index 07ae6b6..7540a46 100644 --- a/zathura.c +++ b/zathura.c @@ -1224,24 +1224,30 @@ open_file(char* path, char* password) pm = 4096; #endif - /* get filename */ - char* file = (char*) g_malloc0(sizeof(char) * pm); - if(!file || !realpath(path, file)) - { - notify(ERROR, "File does not exist"); - if(file) - free(file); - g_static_mutex_unlock(&(Zathura.Lock.pdf_obj_lock)); - return FALSE; - } - + char* rpath = NULL; if(path[0] == '~') { gchar* home_path = get_home_dir(); - g_free(file); - file = g_build_filename(home_path, path + 1, NULL); + rpath = g_build_filename(home_path, path + 1, NULL); g_free(home_path); } + else + rpath = g_strdup(path); + + /* get filename */ + char* file = (char*) g_malloc0(sizeof(char) * pm); + if (!file) + out_of_memory(); + + if(!realpath(rpath, file)) + { + notify(ERROR, "File does not exist"); + g_free(file); + g_free(rpath); + g_static_mutex_unlock(&(Zathura.Lock.pdf_obj_lock)); + return FALSE; + } + g_free(rpath); /* check if file exists */ if(!g_file_test(file, G_FILE_TEST_IS_REGULAR)) From c7dbde9b438476535f244d40e8e24ff0242979cb Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 11 Dec 2010 17:24:09 +0100 Subject: [PATCH 3/3] Remove two memory leaks. --- zathura.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/zathura.c b/zathura.c index 7540a46..dfad617 100644 --- a/zathura.c +++ b/zathura.c @@ -3156,11 +3156,6 @@ cmd_export(int argc, char** argv) if(argv[1][0] == '~') { gchar* home_path = get_home_dir(); - file = malloc(((int) strlen(filename) + (int) strlen(argv[1]) - + (int) strlen(home_path) - 1) * sizeof(char)); - if(!file) - out_of_memory(); - file = g_strdup_printf("%s%s%s", home_path, argv[1] + 1, filename); g_free(home_path); } @@ -3197,11 +3192,6 @@ cmd_export(int argc, char** argv) if(argv[1][0] == '~') { gchar* home_path = get_home_dir(); - file = malloc(((int) strlen(attachment->name) + (int) strlen(argv[1]) - + (int) strlen(home_path) - 1) * sizeof(char)); - if(!file) - out_of_memory(); - file = g_strdup_printf("%s%s%s", home_path, argv[1] + 1, attachment->name); g_free(home_path); }