# HG changeset patch # User Paul Aurich # Date 1243642897 0 # Node ID 42bff519973b5b989f6b2fd66406c5b9c31f17fb # Parent 90d5e3b94a378d65dfaafac2b8a5e335c6fa983a disapproval of revision 'd34a15898cacf017df9190ca02741880be8dd940' xmlParseChunk is not reentrant. This /just happened/ to work for '' but not ''. Closes #9271. diff -r 90d5e3b94a37 -r 42bff519973b libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Sun Apr 26 00:22:21 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Sat May 30 00:21:37 2009 +0000 @@ -79,10 +79,6 @@ "xmlns:stream='http://etherx.jabber.org/streams' " "version='1.0'>", js->user->domain); - if (js->reinit) - /* Close down the current stream to keep the XML parser happy */ - jabber_parser_close_stream(js); - /* setup the parser fresh for each stream */ jabber_parser_setup(js); jabber_send_raw(js, open_stream, -1); @@ -632,9 +628,6 @@ static void tls_init(JabberStream *js) { - /* Close down the current stream to keep the XML parser happy */ - jabber_parser_close_stream(js); - purple_input_remove(js->gc->inpa); js->gc->inpa = 0; js->gsc = purple_ssl_connect_with_host_fd(js->gc->account, js->fd, @@ -1342,16 +1335,6 @@ if (!gc->disconnect_timeout) jabber_send_raw(js, "", -1); - if (!purple_account_get_current_error(purple_connection_get_account(gc))) { - /* - * The common case is user-triggered, so we never receive a - * from the server when disconnecting, so silence the - * parser's warnings. On errors, though, the server terminated the - * connection, so we should have received a real . - */ - jabber_parser_close_stream(js); - } - if (js->srv_query_data) purple_srv_cancel(js->srv_query_data); diff -r 90d5e3b94a37 -r 42bff519973b libpurple/protocols/jabber/parser.c --- a/libpurple/protocols/jabber/parser.c Sun Apr 26 00:22:21 2009 +0000 +++ b/libpurple/protocols/jabber/parser.c Sat May 30 00:21:37 2009 +0000 @@ -207,12 +207,6 @@ jabber_parser_free(js); } -void -jabber_parser_close_stream(JabberStream *js) -{ - xmlParseChunk(js->context, "", 16 /* length */, 0); -} - void jabber_parser_free(JabberStream *js) { if (js->context) { xmlParseChunk(js->context, NULL,0,1); diff -r 90d5e3b94a37 -r 42bff519973b libpurple/protocols/jabber/parser.h --- a/libpurple/protocols/jabber/parser.h Sun Apr 26 00:22:21 2009 +0000 +++ b/libpurple/protocols/jabber/parser.h Sat May 30 00:21:37 2009 +0000 @@ -25,7 +25,6 @@ #include "jabber.h" void jabber_parser_setup(JabberStream *js); -void jabber_parser_close_stream(JabberStream *js); void jabber_parser_free(JabberStream *js); void jabber_parser_process(JabberStream *js, const char *buf, int len);