aboutsummaryrefslogtreecommitdiffstats
path: root/protocols
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-10-01 21:21:50 -0700
committerWilmer van der Gaast <wilmer@gaast.net>2010-10-01 21:21:50 -0700
commit52f5e90f166179d461e29af98d8b2852d9f12be0 (patch)
tree305e3226bb9302ddc68c10a5a5a22a3da869003c /protocols
parent2c6b0f4dbc367963d21314636c4b114dc7aadd32 (diff)
Fixed possible crash bug on removing contacts while the auth cookie expired.
Diffstat (limited to 'protocols')
-rw-r--r--protocols/msn/soap.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/protocols/msn/soap.c b/protocols/msn/soap.c
index 21e9feec..baa73718 100644
--- a/protocols/msn/soap.c
+++ b/protocols/msn/soap.c
@@ -969,13 +969,12 @@ int msn_soap_ab_contact_add( struct im_connection *ic, bee_user_t *bu )
static int msn_soap_ab_contact_del_build_request( struct msn_soap_req_data *soap_req )
{
struct msn_data *md = soap_req->ic->proto_data;
- bee_user_t *bu = soap_req->data;
- struct msn_buddy_data *bd = bu->data;
+ const char *cid = soap_req->data;
soap_req->url = g_strdup( SOAP_ADDRESSBOOK_URL );
soap_req->action = g_strdup( SOAP_AB_CONTACT_DEL_ACTION );
soap_req->payload = msn_soap_abservice_build( SOAP_AB_CONTACT_DEL_PAYLOAD,
- "Timer", md->tokens[1], bd->cid );
+ "Timer", md->tokens[1], cid );
return 1;
}
@@ -988,12 +987,15 @@ static int msn_soap_ab_contact_del_handle_response( struct msn_soap_req_data *so
static int msn_soap_ab_contact_del_free_data( struct msn_soap_req_data *soap_req )
{
+ g_free( soap_req->data );
return 0;
}
int msn_soap_ab_contact_del( struct im_connection *ic, bee_user_t *bu )
{
- return msn_soap_start( ic, bu,
+ struct msn_buddy_data *bd = bu->data;
+
+ return msn_soap_start( ic, g_strdup( bd->cid ),
msn_soap_ab_contact_del_build_request,
NULL,
msn_soap_ab_contact_del_handle_response,