[PATCH 1/2] Fixed some memory leaks related to string configuration entries
Lubomir I. Ivanov
neolit123 at gmail.com
Thu Oct 4 14:48:44 PDT 2012
From: "Lubomir I. Ivanov" <neolit123 at gmail.com>
Each time we retrieve a string configuration entry via
subsurface_get_conf(), all the multiplatform methods in linux.c,
macos.c, windows.c allocate memory for the returned value.
In gtk-gui.c, lets try to release the memory at:
default_dive_computer_vendor, default_dive_computer_product, divelist_font
before assigning a new address to these pointers.
Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
gtk-gui.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gtk-gui.c b/gtk-gui.c
index c4517fd..0312fe6 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -60,6 +60,10 @@ static void set_default_dive_computer(const char *vendor, const char *product)
return;
if (is_default_dive_computer(vendor, product))
return;
+ if (default_dive_computer_vendor)
+ free((void *)default_dive_computer_vendor);
+ if (default_dive_computer_product)
+ free((void *)default_dive_computer_product);
default_dive_computer_vendor = vendor;
default_dive_computer_product = product;
subsurface_set_conf("dive_computer_vendor", PREF_STRING, vendor);
@@ -673,6 +677,8 @@ static void preferences_dialog(GtkWidget *w, gpointer data)
/* Make sure to flush any modified old dive data with old units */
update_dive(NULL);
+ if (divelist_font)
+ free((void *)divelist_font);
divelist_font = strdup(gtk_font_button_get_font_name(GTK_FONT_BUTTON(font)));
set_divelist_font(divelist_font);
--
1.7.11.msysgit.0
More information about the subsurface
mailing list