changeset 31761:d2962c2d7791

disapproval of revision '385542a8270ac30d2121b533494264a28cd04423'
author Mark Doliner <mark@kingant.net>
date Tue, 08 Mar 2011 02:27:25 +0000
parents 5fa13ec086e0
children 96dffe08f3f7
files libpurple/protocols/jabber/jabber.c
diffstat 1 files changed, 11 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Mon Mar 07 06:42:57 2011 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Tue Mar 08 02:27:25 2011 +0000
@@ -924,24 +924,25 @@
 	PurpleConnection *gc = purple_account_get_connection(account);
 	JabberStream *js;
 	PurplePresence *presence;
-	const gchar *username;
+	gchar *user;
 	gchar *slash;
 
 	js = gc->proto_data = g_new0(JabberStream, 1);
 	js->gc = gc;
 	js->fd = -1;
 
-	username = purple_account_get_username(account);
+	user = g_strdup(purple_account_get_username(account));
 	/* jabber_id_new doesn't accept "user@domain/" as valid */
-	slash = strchr(username, '/');
+	slash = strchr(user, '/');
 	if (slash && *(slash + 1) == '\0')
 		*slash = '\0';
-	js->user = jabber_id_new(username);
+	js->user = jabber_id_new(user);
 
 	if (!js->user) {
 		purple_connection_error_reason(gc,
 			PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
 			_("Invalid XMPP ID"));
+		g_free(user);
 		/* Destroying the connection will free the JabberStream */
 		return NULL;
 	}
@@ -950,6 +951,7 @@
 		purple_connection_error_reason(gc,
 			PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
 			_("Invalid XMPP ID. Username portion must be set."));
+		g_free(user);
 		/* Destroying the connection will free the JabberStream */
 		return NULL;
 	}
@@ -958,6 +960,7 @@
 		purple_connection_error_reason(gc,
 			PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
 			_("Invalid XMPP ID. Domain must be set."));
+		g_free(user);
 		/* Destroying the connection will free the JabberStream */
 		return NULL;
 	}
@@ -968,9 +971,10 @@
 	/* This is overridden during binding, but we need it here
 	 * in case the server only does legacy non-sasl auth!.
 	 */
-	purple_connection_set_display_name(gc, username);
-
-	js->user_jb = jabber_buddy_find(js, username, TRUE);
+	purple_connection_set_display_name(gc, user);
+
+	js->user_jb = jabber_buddy_find(js, user, TRUE);
+	g_free(user);
 	if (!js->user_jb) {
 		/* This basically *can't* fail, but for good measure... */
 		purple_connection_error_reason(gc,