summaryrefslogtreecommitdiff
path: root/libpurple/protocols/msn/soap.c
diff options
context:
space:
mode:
authorDaniel Atallah <datallah@pidgin.im>2007-10-18 23:51:10 +0000
committerDaniel Atallah <datallah@pidgin.im>2007-10-18 23:51:10 +0000
commit9922fb9ef936d48401f7617bab11fee133f94ba4 (patch)
tree23b764c1d3a7926ca504347e6689c983af58078d /libpurple/protocols/msn/soap.c
parent8b30a26f68452510db9c5fa23e108cd086687b71 (diff)
downloadpidgin-9922fb9ef936d48401f7617bab11fee133f94ba4.tar.gz
Fix some leaks and prevent some unnecessary allocations and frees.
Diffstat (limited to 'libpurple/protocols/msn/soap.c')
-rw-r--r--libpurple/protocols/msn/soap.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/libpurple/protocols/msn/soap.c b/libpurple/protocols/msn/soap.c
index 80dfae2e3f..25690d52c7 100644
--- a/libpurple/protocols/msn/soap.c
+++ b/libpurple/protocols/msn/soap.c
@@ -679,6 +679,8 @@ msn_soap_write(MsnSoapConn * soapconn, char *write_buf, MsnSoapWrittenCbFunction
msn_soap_set_process_step(soapconn, MSN_SOAP_PROCESSING);
+ /* Ideally this wouldn't ever be necessary, but i believe that it is leaking the previous value */
+ g_free(soapconn->write_buf);
soapconn->write_buf = write_buf;
soapconn->written_len = 0;
soapconn->written_cb = written_cb;
@@ -822,7 +824,6 @@ msn_soap_post(MsnSoapConn *soapconn, MsnSoapReq *request)
void
msn_soap_post_request(MsnSoapConn *soapconn, MsnSoapReq *request)
{
- char * soap_head = NULL;
char * request_str = NULL;
#ifdef MSN_SOAP_DEBUG
#if !defined(_WIN32)
@@ -832,7 +833,7 @@ msn_soap_post_request(MsnSoapConn *soapconn, MsnSoapReq *request)
#endif
msn_soap_set_process_step(soapconn, MSN_SOAP_PROCESSING);
- soap_head = g_strdup_printf(
+ request_str = g_strdup_printf(
"POST %s HTTP/1.1\r\n"
"SOAPAction: %s\r\n"
"Content-Type:text/xml; charset=utf-8\r\n"
@@ -842,14 +843,15 @@ msn_soap_post_request(MsnSoapConn *soapconn, MsnSoapReq *request)
"Host: %s\r\n"
"Content-Length: %" G_GSIZE_FORMAT "\r\n"
"Connection: Keep-Alive\r\n"
- "Cache-Control: no-cache\r\n\r\n",
+ "Cache-Control: no-cache\r\n\r\n"
+ "%s",
request->login_path,
request->soap_action,
soapconn->session->passport_info.mspauth,
request->login_host,
- strlen(request->body)
+ strlen(request->body),
+ request->body
);
- request_str = g_strdup_printf("%s%s", soap_head, request->body);
#if defined(MSN_SOAP_DEBUG) && !defined(_WIN32)
node = xmlnode_from_str(request->body, -1);
@@ -863,7 +865,6 @@ msn_soap_post_request(MsnSoapConn *soapconn, MsnSoapReq *request)
purple_debug_info("MSN SOAP","Failed to parse SOAP request being sent:\n%s\n", request_str);
#endif
- g_free(soap_head);
/*free read buffer*/
// msn_soap_free_read_buf(soapconn);
/*post it to server*/