Mercurial > pidgin
changeset 29611:a7875e67ad9c
Don't try to convert the message in incoming auth requests. The oscar
protocol documentation that used to be posted on AOL's web site stated
that, "All strings in Feedbag are UTF8 encoded." Looks like the current
conversion code was added in revision a59a61f8b5d0874acb16f9ca8e57a074cf037eca
I believe this fixes #7457
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 18 Mar 2010 08:30:02 +0000 |
parents | 855620e59e0e |
children | 24b7fa9c0c8b |
files | libpurple/protocols/oscar/oscar.c |
diffstat | 1 files changed, 16 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/oscar/oscar.c Thu Mar 18 08:08:43 2010 +0000 +++ b/libpurple/protocols/oscar/oscar.c Thu Mar 18 08:30:02 2010 +0000 @@ -5807,28 +5807,34 @@ return 1; } -static int purple_ssi_authrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) { +static int purple_ssi_authrequest(OscarData *od, FlapConnection *conn, FlapFrame *fr, ...) +{ PurpleConnection *gc = od->gc; va_list ap; - char *bn; - char *msg; + const char *bn; + const char *msg; PurpleAccount *account = purple_connection_get_account(gc); - gchar *reason = NULL; struct name_data *data; PurpleBuddy *buddy; va_start(ap, fr); - bn = va_arg(ap, char *); - msg = va_arg(ap, char *); + bn = va_arg(ap, const char *); + msg = va_arg(ap, const char *); va_end(ap); purple_debug_info("oscar", - "ssi: received authorization request from %s\n", bn); + "ssi: received authorization request from %s\n", bn); buddy = purple_find_buddy(account, bn); - if (msg != NULL) - reason = purple_plugin_oscar_decode_im_part(account, bn, AIM_CHARSET_LATIN_1, 0x0000, msg, strlen(msg)); + if (!msg) { + purple_debug_warning("oscar", "Received auth request from %s with " + "empty message\n", bn); + } else if (!g_utf8_validate(msg, -1, NULL)) { + purple_debug_warning("oscar", "Received auth request from %s with " + "invalid UTF-8 message\n", bn); + msg = NULL; + } data = g_new(struct name_data, 1); data->gc = gc; @@ -5837,9 +5843,8 @@ purple_account_request_authorization(account, bn, NULL, (buddy ? purple_buddy_get_alias_only(buddy) : NULL), - reason, buddy != NULL, purple_auth_grant, + msg, buddy != NULL, purple_auth_grant, purple_auth_dontgrant_msgprompt, data); - g_free(reason); return 1; }