diff libpurple/protocols/jabber/jabber.c @ 28793:a335d1bab20e

jabber: Reject invalid chat nicks in /nick command. Fixes #10532.
author Paul Aurich <paul@darkrain42.org>
date Sat, 24 Oct 2009 00:59:12 +0000
parents 4a0d69b9d8a8
children d7c49598cef2 c3be1de8abde
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Fri Oct 23 06:25:49 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sat Oct 24 00:59:12 2009 +0000
@@ -2606,8 +2606,15 @@
 	if(!chat || !args || !args[0])
 		return PURPLE_CMD_RET_FAILED;
 
-	jabber_chat_change_nick(chat, args[0]);
-	return PURPLE_CMD_RET_OK;
+	if (!jabber_resourceprep_validate(args[0])) {
+		*error = g_strdup(_("Invalid nickname"));
+		return PURPLE_CMD_RET_FAILED;
+	}
+
+	if (jabber_chat_change_nick(chat, args[0]))
+		return PURPLE_CMD_RET_OK;
+	else
+		return PURPLE_CMD_RET_FAILED;
 }
 
 static PurpleCmdRet jabber_cmd_chat_part(PurpleConversation *conv,