# HG changeset patch # User Ka-Hing Cheung # Date 1189295965 0 # Node ID 89a82874d64ecb1022fe76bcef11785b20a49a24 # Parent 82d8797e06f3d0e614d8ffca510cbd27da197fd3# Parent c32fbef16656aa7f1b3174193f443ade8380b1b0 merge of '85c73f22a9f7e979b53ff5d0d965a8cba49b35c0' and 'b72032dfc24c2067d0692d367120edaa068a1f7c' diff -r c32fbef16656 -r 89a82874d64e libpurple/protocols/msn/cmdproc.c --- a/libpurple/protocols/msn/cmdproc.c Sat Sep 08 23:57:59 2007 +0000 +++ b/libpurple/protocols/msn/cmdproc.c Sat Sep 08 23:59:25 2007 +0000 @@ -258,8 +258,10 @@ trans = msn_history_find(cmdproc->history, cmd->trId); if (trans != NULL) - if (trans->timer) + if (trans->timer) { purple_timeout_remove(trans->timer); + trans->timer = 0; + } if (g_ascii_isdigit(cmd->command[0])) { diff -r c32fbef16656 -r 89a82874d64e libpurple/protocols/msn/contact.c --- a/libpurple/protocols/msn/contact.c Sat Sep 08 23:57:59 2007 +0000 +++ b/libpurple/protocols/msn/contact.c Sat Sep 08 23:59:25 2007 +0000 @@ -809,11 +809,13 @@ if ( !strncmp(errorcodestring, "ABDoesNotExist", 14) ) { g_free(errorcodestring); + xmlnode_free(node); return TRUE; } g_free(errorcodestring); } } + xmlnode_free(node); return FALSE; } @@ -821,6 +823,7 @@ response = xmlnode_get_child(body,"ABFindAllResponse"); if (response == NULL) { + xmlnode_free(node); return FALSE; } @@ -828,6 +831,7 @@ result = xmlnode_get_child(response,"ABFindAllResult"); if(result == NULL){ purple_debug_misc("MSNAB","receive no address book update\n"); + xmlnode_free(node); return TRUE; } purple_debug_info("MSN SOAP","result{%p},name:%s\n",result,result->name); diff -r c32fbef16656 -r 89a82874d64e libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Sat Sep 08 23:57:59 2007 +0000 +++ b/libpurple/protocols/msn/notification.c Sat Sep 08 23:59:25 2007 +0000 @@ -490,8 +490,8 @@ body_enc ? body_enc : "", post ? post : ""); g_free(pre); g_free(post); - g_free(body_enc); } + g_free(body_enc); serv_got_im(gc, passport, body_final, 0, time(NULL)); } if(!strcmp(content_type,"text/x-msmsgscontrol")){ diff -r c32fbef16656 -r 89a82874d64e libpurple/protocols/msn/soap.c --- a/libpurple/protocols/msn/soap.c Sat Sep 08 23:57:59 2007 +0000 +++ b/libpurple/protocols/msn/soap.c Sat Sep 08 23:59:25 2007 +0000 @@ -50,8 +50,8 @@ soapconn->ssl_conn = sslconn; soapconn->gsc = NULL; - soapconn->input_handler = -1; - soapconn->output_handler = -1; + soapconn->input_handler = 0; + soapconn->output_handler = 0; msn_soap_set_process_step(soapconn,MSN_SOAP_UNCONNECTED); soapconn->soap_queue = g_queue_new(); @@ -168,11 +168,12 @@ /*remove the write handler*/ if (soapconn->output_handler > 0){ purple_input_remove(soapconn->output_handler); + soapconn->output_handler = 0; } /*remove the read handler*/ if (soapconn->input_handler > 0){ purple_input_remove(soapconn->input_handler); - soapconn->input_handler = -1; + soapconn->input_handler = 0; } msn_soap_free_read_buf(soapconn); msn_soap_free_write_buf(soapconn); @@ -231,7 +232,7 @@ "read len: %d, error = %s\n", len, strerror(errno)); purple_input_remove(soapconn->input_handler); - soapconn->input_handler = -1; + soapconn->input_handler = 0; g_free(soapconn->read_buf); soapconn->read_buf = NULL; soapconn->read_len = 0; @@ -464,7 +465,7 @@ /*remove the read handler*/ purple_input_remove(soapconn->input_handler); - soapconn->input_handler = -1; + soapconn->input_handler = 0; /* * close the soap connection,if more soap request came, * Just reconnect to do it, @@ -568,7 +569,7 @@ soapconn->written_cb(soapconn, source, 0); } /*maybe we need to read the input?*/ - if ( soapconn->input_handler == -1 ) { + if (soapconn->input_handler == 0) { soapconn->input_handler = purple_input_add(soapconn->gsc->fd, PURPLE_INPUT_READ, msn_soap_read_cb, soapconn); } diff -r c32fbef16656 -r 89a82874d64e libpurple/protocols/msn/state.c --- a/libpurple/protocols/msn/state.c Sat Sep 08 23:57:59 2007 +0000 +++ b/libpurple/protocols/msn/state.c Sat Sep 08 23:59:25 2007 +0000 @@ -78,6 +78,7 @@ xmlnode_insert_child(dataNode,guidNode); result = xmlnode_to_str(dataNode,&length); + xmlnode_free(dataNode); return result; }