[PATCH 2/6] Fixed a memory leak in webservice.c

Lubomir I. Ivanov neolit123 at gmail.com
Sat Feb 9 11:29:57 PST 2013


From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

webservice.c:webservice_download_dialog()
If a value for previous UID is returned from the user config
via subsurface_get_conf("webservice_uid"), make sure to
free the string near the function return.

Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
 webservice.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/webservice.c b/webservice.c
index fec2ccf..531a571 100644
--- a/webservice.c
+++ b/webservice.c
@@ -199,10 +199,13 @@ void webservice_download_dialog(void)
 	GtkWidget *dialog, *vbox, *status, *info, *uid;
 	GtkWidget *frame_uid, *frame_status, *download, *image, *apply;
 	struct download_dialog_state state = {NULL};
+	gboolean has_previous_uid = TRUE;
 	int result;
 
-	if (!current_uid)
+	if (!current_uid) {
 		current_uid = "";
+		has_previous_uid = FALSE;
+	}
 
 	dialog = gtk_dialog_new_with_buttons(_("Download From Web Service"),
 		GTK_WINDOW(main_window),
@@ -262,4 +265,6 @@ void webservice_download_dialog(void)
 	}
 	download_dialog_release_xml(&state);
 	gtk_widget_destroy(dialog);
+	if (has_previous_uid)
+		free((void *)current_uid);
 }
-- 
1.7.11.msysgit.0



More information about the subsurface mailing list