pidgin/ljfisher-ssl-client-auth

Salvage incoming SILC text if necessary.
release-2.x.y
2011-09-30, Ethan Blanton
69372ee4f474
Salvage incoming SILC text if necessary.

Fixes #14636
--- a/libpurple/protocols/silc/ops.c Sun Sep 11 04:18:46 2011 +0000
+++ b/libpurple/protocols/silc/ops.c Fri Sep 30 01:31:04 2011 +0000
@@ -408,9 +408,16 @@
}
if (flags & SILC_MESSAGE_FLAG_UTF8) {
- tmp = g_markup_escape_text((const char *)message, -1);
+ const char *msg = (const char *)message;
+ char *salvaged = NULL;
+ if (!g_utf8_validate((const char *)message, -1, NULL)) {
+ salvaged = purple_utf8_salvage((const char *)message);
+ msg = salvaged;
+ }
+ tmp = g_markup_escape_text(msg, -1);
/* Send to Purple */
serv_got_im(gc, sender->nickname, tmp, 0, time(NULL));
+ g_free(salvaged);
g_free(tmp);
}
}