Last active
December 15, 2015 06:09
-
-
Save kcozens/5214302 to your computer and use it in GitHub Desktop.
Patch to fix segmentation fault crashes in Remmina.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 7022d6f5d177ad29aa7d449d269d51ef5e34e6d5 Mon Sep 17 00:00:00 2001 | |
From: Kevin Cozens <kevin@ve3syb.ca> | |
Date: Thu, 21 Mar 2013 13:35:58 -0400 | |
Subject: [PATCH] Don't seg fault if no perms to read .remmina files, or if | |
file is corrupt. Fixed minor memory leak. | |
--- | |
remmina/src/remmina_applet_menu.c | 2 ++ | |
remmina/src/remmina_applet_menu_item.c | 5 ++++- | |
remmina/src/remmina_file_manager.c | 2 ++ | |
3 files changed, 8 insertions(+), 1 deletion(-) | |
diff --git a/remmina/src/remmina_applet_menu.c b/remmina/src/remmina_applet_menu.c | |
index f5db74d..1e47102 100644 | |
--- a/remmina/src/remmina_applet_menu.c | |
+++ b/remmina/src/remmina_applet_menu.c | |
@@ -252,6 +252,8 @@ void remmina_applet_menu_populate(RemminaAppletMenu *menu) | |
g_snprintf(filename, sizeof(filename), "%s/%s", dirname, name); | |
menuitem = remmina_applet_menu_item_new(REMMINA_APPLET_MENU_ITEM_FILE, filename); | |
+ if (menuitem == NULL) | |
+ continue; | |
remmina_applet_menu_add_item(menu, REMMINA_APPLET_MENU_ITEM(menuitem)); | |
gtk_widget_show(menuitem); | |
} | |
diff --git a/remmina/src/remmina_applet_menu_item.c b/remmina/src/remmina_applet_menu_item.c | |
index abb9882..7bb086c 100644 | |
--- a/remmina/src/remmina_applet_menu_item.c | |
+++ b/remmina/src/remmina_applet_menu_item.c | |
@@ -75,7 +75,10 @@ GtkWidget* remmina_applet_menu_item_new(RemminaAppletMenuItemType item_type, ... | |
gkeyfile = g_key_file_new(); | |
if (!g_key_file_load_from_file(gkeyfile, item->filename, G_KEY_FILE_NONE, NULL)) | |
+ { | |
+ g_key_file_free(gkeyfile); | |
return NULL; | |
+ } | |
item->name = g_key_file_get_string(gkeyfile, "remmina", "name", NULL); | |
item->group = g_key_file_get_string(gkeyfile, "remmina", "group", NULL); | |
@@ -120,7 +123,7 @@ GtkWidget* remmina_applet_menu_item_new(RemminaAppletMenuItemType item_type, ... | |
{ | |
iconname = (item->ssh_enabled ? "remmina-rdp-ssh" : "remmina-rdp"); | |
} | |
- else if (strncmp (item->protocol, "VNC", 3) == 0) | |
+ else if (item->protocol != NULL && strncmp (item->protocol, "VNC", 3) == 0) | |
{ | |
iconname = (item->ssh_enabled ? "remmina-vnc-ssh" : "remmina-vnc"); | |
} | |
diff --git a/remmina/src/remmina_file_manager.c b/remmina/src/remmina_file_manager.c | |
index 2741962..dd8e129 100644 | |
--- a/remmina/src/remmina_file_manager.c | |
+++ b/remmina/src/remmina_file_manager.c | |
@@ -89,6 +89,8 @@ gchar* remmina_file_manager_get_groups(void) | |
continue; | |
g_snprintf(filename, MAX_PATH_LEN, "%s/%s", dirname, name); | |
remminafile = remmina_file_load(filename); | |
+ if (remminafile == NULL) | |
+ continue; | |
group = remmina_file_get_string(remminafile, "group"); | |
if (group && remmina_string_array_find(array, group) < 0) | |
{ | |
-- | |
1.7.10.4 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This patch fixes three possible segmentation faults and one memory leak in the git master version of Remmina (hash code 948de6fb).