libpurple/protocols/irc/parse.c

changeset 40618
4726bf0ff977
parent 40519
974dbfd7e52f
child 40765
a5381c20e802
--- a/libpurple/protocols/irc/parse.c	Fri Nov 20 02:10:50 2020 -0600
+++ b/libpurple/protocols/irc/parse.c	Fri Nov 20 16:19:48 2020 -0600
@@ -700,16 +700,19 @@
 		g_free(msg);
 		return;
 	} else if (!strncmp(input, "ERROR ", 6)) {
+		GError *error;
 		if (g_utf8_validate(input, -1, NULL)) {
-			purple_connection_take_error(gc, g_error_new(
+			error = g_error_new(
 				PURPLE_CONNECTION_ERROR,
 				PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
-				"%s\n%s", _("Disconnected."), input));
-		} else
-			purple_connection_take_error(gc, g_error_new_literal(
+				"%s\n%s", _("Disconnected."), input);
+		} else {
+			error = g_error_new_literal(
 				PURPLE_CONNECTION_ERROR,
 				PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
-				_("Disconnected.")));
+				_("Disconnected."));
+		}
+		purple_connection_take_error(gc, error);
 		return;
 #ifdef HAVE_CYRUS_SASL
 	} else if (!strncmp(input, "AUTHENTICATE ", 13)) {

mercurial