Mercurial > pidgin
diff libpurple/protocols/jabber/auth_scram.c @ 28754:b94fd073187c
jabber: Fix that leak I mentioned (and fix a mistake where error/response weren't NULL-initialized)
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Fri, 04 Dec 2009 06:18:05 +0000 |
parents | a6cd1db77aee |
children | 9134be6baaef |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/auth_scram.c Fri Dec 04 06:04:18 2009 +0000 +++ b/libpurple/protocols/jabber/auth_scram.c Fri Dec 04 06:18:05 2009 +0000 @@ -349,7 +349,7 @@ } static JabberSaslState -scram_start(JabberStream *js, xmlnode *mechanisms, xmlnode **out, const char **error) +scram_start(JabberStream *js, xmlnode *mechanisms, xmlnode **out, char **error) { xmlnode *reply; JabberScramData *data; @@ -363,7 +363,7 @@ prepped_node = jabber_saslprep(js->user->node); if (!prepped_node) { - *error = _("Unable to canonicalize username"); + *error = g_strdup(_("Unable to canonicalize username")); return JABBER_SASL_STATE_FAIL; } @@ -374,7 +374,7 @@ prepped_pass = jabber_saslprep(purple_connection_get_password(js->gc)); if (!prepped_pass) { g_free(prepped_node); - *error = _("Unable to canonicalize password"); + *error = g_strdup(_("Unable to canonicalize password")); return JABBER_SASL_STATE_FAIL; } @@ -415,7 +415,7 @@ } static JabberSaslState -scram_handle_challenge(JabberStream *js, xmlnode *challenge, xmlnode **out, const char **error) +scram_handle_challenge(JabberStream *js, xmlnode *challenge, xmlnode **out, char **error) { JabberScramData *data = js->auth_mech_data; xmlnode *reply; @@ -429,7 +429,7 @@ reply = xmlnode_new("abort"); xmlnode_set_namespace(reply, NS_XMPP_SASL); data->step = -1; - *error = _("Invalid challenge from server"); + *error = g_strdup(_("Invalid challenge from server")); goto out; } @@ -440,7 +440,7 @@ reply = xmlnode_new("abort"); xmlnode_set_namespace(reply, NS_XMPP_SASL); data->step = -1; - *error = _("Malicious challenge from server"); + *error = g_strdup(_("Malicious challenge from server")); goto out; } @@ -450,7 +450,7 @@ reply = xmlnode_new("abort"); xmlnode_set_namespace(reply, NS_XMPP_SASL); data->step = -1; - *error = _("Invalid challenge from server"); + *error = g_strdup(_("Invalid challenge from server")); goto out; } @@ -476,7 +476,7 @@ } static JabberSaslState -scram_handle_success(JabberStream *js, xmlnode *packet, const char **error) +scram_handle_success(JabberStream *js, xmlnode *packet, char **error) { JabberScramData *data = js->auth_mech_data; char *enc_in, *dec_in; @@ -490,7 +490,7 @@ return JABBER_SASL_STATE_OK; if (data->step != 2) { - *error = _("Unexpected response from server"); + *error = g_strdup(_("Unexpected response from server")); return JABBER_SASL_STATE_FAIL; } @@ -499,7 +499,7 @@ if (!dec_in || len != strlen(dec_in)) { /* Danger afoot; SCRAM shouldn't contain NUL bytes */ g_free(dec_in); - *error = _("Invalid challenge from server"); + *error = g_strdup(_("Invalid challenge from server")); return JABBER_SASL_STATE_FAIL; } @@ -507,7 +507,7 @@ if (!jabber_scram_feed_parser(data, dec_in, &dec_out) || dec_out != NULL) { g_free(dec_out); - *error = _("Invalid challenge from server"); + *error = g_strdup(_("Invalid challenge from server")); return JABBER_SASL_STATE_FAIL; }