diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2012-10-04 23:52:09 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2012-10-05 23:44:37 +0900 |
commit | b272fb8c3b7c552e4519d4e19af99d8139eaf733 (patch) | |
tree | 75c1ba6bd50835ee3340984f64ab8ef4e7a13e03 /gtk-gui.c | |
parent | f928be5061744bb38c3aff8ea41dbd0c42851cbc (diff) | |
download | subsurface-b272fb8c3b7c552e4519d4e19af99d8139eaf733.tar.gz |
Fixed some memory leaks related to string configuration entries
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@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'gtk-gui.c')
-rw-r--r-- | gtk-gui.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -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); |