summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Atallah <datallah@pidgin.im>2008-06-19 03:11:47 +0000
committerDaniel Atallah <datallah@pidgin.im>2008-06-19 03:11:47 +0000
commit7d257f182861cfd10964a6bd96be8aadb10c582c (patch)
tree9bfb62868b82fca37b79ffef7c457fccd60c046e
parent7f6748441dbb6c815693324ab90abfc76a37b28a (diff)
downloadpidgin-7d257f182861cfd10964a6bd96be8aadb10c582c.tar.gz
applied changes from 904a276588f7de13ba13b578905c82c0493184ce
through 4dd6e06680aebbca6a326930f5fff7e65ed87802
-rw-r--r--libpurple/protocols/irc/msgs.c6
-rw-r--r--libpurple/protocols/irc/parse.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/libpurple/protocols/irc/msgs.c b/libpurple/protocols/irc/msgs.c
index db88d9b4f5..ca4d4eb3d5 100644
--- a/libpurple/protocols/irc/msgs.c
+++ b/libpurple/protocols/irc/msgs.c
@@ -122,7 +122,11 @@ static void irc_connected(struct irc_conn *irc, const char *nick)
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)
diff --git a/libpurple/protocols/irc/parse.c b/libpurple/protocols/irc/parse.c
index 198f4de827..85f6535170 100644
--- a/libpurple/protocols/irc/parse.c
+++ b/libpurple/protocols/irc/parse.c
@@ -710,5 +710,10 @@ void irc_parse_msg(struct irc_conn *irc, char *input)
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);
}