From 26c21451b9a01bc535aa4f556723e3bc573333e4 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 2 Jul 2013 13:18:57 +0200 Subject: [PATCH] Secure code and fix memory leak. --- gtk/setupwizard.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/setupwizard.c b/gtk/setupwizard.c index 0c15e602b..439f9c89f 100644 --- a/gtk/setupwizard.c +++ b/gtk/setupwizard.c @@ -422,11 +422,17 @@ static void linphone_gtk_assistant_prepare(GtkWidget *assistant, GtkWidget *page gchar *username = creator->username + 4; const gchar *needle = "@"; - username = g_strndup(username, (g_strrstr(username, needle) - username)); + const gchar *needle_ptr = g_strrstr(username, needle); + if (needle_ptr != NULL) { + username = g_strndup(username, needle_ptr - username); + } else { + username = g_strdup(username); + } gchar domain[128]; g_snprintf(domain, sizeof(domain), "\"%s\"", creator->domain + 4); LinphoneAuthInfo *info=linphone_auth_info_new(username, username, creator->password, NULL, domain); linphone_core_add_auth_info(linphone_gtk_get_core(),info); + g_free(username); if (linphone_core_add_proxy_config(linphone_gtk_get_core(),cfg)==-1) return;