Make the IRC "unknown message" debugging messages UTF-8 safe.

Thu, 05 Jun 2008 22:36:21 +0000

author
Ethan Blanton <elb@pidgin.im>
date
Thu, 05 Jun 2008 22:36:21 +0000
changeset 23433
0094a64519cb
parent 23432
f2998a35ba3b
child 23435
e7c945e4cf6c

Make the IRC "unknown message" debugging messages UTF-8 safe.

Fixes #6019

libpurple/protocols/irc/msgs.c file | annotate | diff | comparison | revisions
libpurple/protocols/irc/parse.c file | annotate | diff | comparison | revisions
--- a/libpurple/protocols/irc/msgs.c	Thu Jun 05 12:25:20 2008 +0000
+++ b/libpurple/protocols/irc/msgs.c	Thu Jun 05 22:36:21 2008 +0000
@@ -122,7 +122,11 @@
 
 void irc_msg_default(struct irc_conn *irc, const char *name, const char *from, char **args)
 {
-	purple_debug(PURPLE_DEBUG_INFO, "irc", "Unrecognized message: %s\n", args[0]);
+	char *clean;
+        /* This, too, should be escaped somehow (smarter) */
+        clean = purple_utf8_salvage(args[0]);
+	purple_debug(PURPLE_DEBUG_INFO, "irc", "Unrecognized message: %s\n", clean);
+        g_free(clean);
 }
 
 void irc_msg_features(struct irc_conn *irc, const char *name, const char *from, char **args)
--- a/libpurple/protocols/irc/parse.c	Thu Jun 05 12:25:20 2008 +0000
+++ b/libpurple/protocols/irc/parse.c	Thu Jun 05 22:36:21 2008 +0000
@@ -710,5 +710,10 @@
 
 static void irc_parse_error_cb(struct irc_conn *irc, char *input)
 {
-	purple_debug(PURPLE_DEBUG_WARNING, "irc", "Unrecognized string: %s\n", input);
+	char *clean;
+        /* This really should be escaped somehow that you can tell what
+         * the junk was -- but as it is, it can crash glib. */
+        clean = purple_utf8_salvage(input);
+	purple_debug(PURPLE_DEBUG_WARNING, "irc", "Unrecognized string: %s\n", clean);
+        g_free(clean);
 }

mercurial