summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Sales de Andrade <qulogic@pidgin.im>2010-11-21 09:56:48 +0000
committerElliott Sales de Andrade <qulogic@pidgin.im>2010-11-21 09:56:48 +0000
commitd5f1dcd21127eb3c3d89c2aabdb1a291c48ff819 (patch)
treef36c9fe1514d17937670dec41e5d32630727ee6b
parent2cf5f6603d4ab1c16b6c020d2397afa836164f2f (diff)
downloadpidgin-d5f1dcd21127eb3c3d89c2aabdb1a291c48ff819.tar.gz
Fix a lot more leaks, some old, some new.
-rw-r--r--libpurple/protocols/msn/directconn.c1
-rw-r--r--libpurple/protocols/msn/msg.c2
-rw-r--r--libpurple/protocols/msn/msn.c2
-rw-r--r--libpurple/protocols/msn/notification.c1
-rw-r--r--libpurple/protocols/msn/object.c2
-rw-r--r--libpurple/protocols/msn/sbconn.c5
-rw-r--r--libpurple/protocols/msn/slpcall.c1
-rw-r--r--libpurple/protocols/msn/slplink.c5
-rw-r--r--libpurple/protocols/msn/slpmsg_part.c3
-rw-r--r--libpurple/protocols/msn/switchboard.c1
10 files changed, 16 insertions, 7 deletions
diff --git a/libpurple/protocols/msn/directconn.c b/libpurple/protocols/msn/directconn.c
index 961bc68492..72b521ae35 100644
--- a/libpurple/protocols/msn/directconn.c
+++ b/libpurple/protocols/msn/directconn.c
@@ -633,6 +633,7 @@ msn_dc_process_packet(MsnDirectConn *dc, guint32 packet_length)
if (dc->header.length) {
part = msn_slpmsgpart_new_from_data(dc->in_buffer + 4, dc->header.length);
msn_slplink_process_msg(dc->slplink, part);
+ msn_slpmsgpart_destroy(part);
}
/*
diff --git a/libpurple/protocols/msn/msg.c b/libpurple/protocols/msn/msg.c
index e127850b34..d58272ac75 100644
--- a/libpurple/protocols/msn/msg.c
+++ b/libpurple/protocols/msn/msg.c
@@ -368,6 +368,8 @@ msn_message_gen_payload(MsnMessage *msg, size_t *ret_size)
memcpy(n, body, siz);
n += siz;
+
+ g_free(body);
}
else
{
diff --git a/libpurple/protocols/msn/msn.c b/libpurple/protocols/msn/msn.c
index 15b31d8713..9cffff8989 100644
--- a/libpurple/protocols/msn/msn.c
+++ b/libpurple/protocols/msn/msn.c
@@ -1446,6 +1446,7 @@ msn_send_im_message(MsnSession *session, MsnMessage *msg)
}
msn_switchboard_send_msg(swboard, msg, TRUE);
+ msn_message_destroy(msg);
}
static int
@@ -2081,6 +2082,7 @@ msn_keepalive(PurpleConnection *gc)
trans = msn_transaction_new(cmdproc, "PNG", NULL);
msn_transaction_set_saveable(trans, FALSE);
msn_cmdproc_send_trans(cmdproc, trans);
+ msn_transaction_destroy(trans);
}
}
diff --git a/libpurple/protocols/msn/notification.c b/libpurple/protocols/msn/notification.c
index 0bb93572be..9197bcb2c7 100644
--- a/libpurple/protocols/msn/notification.c
+++ b/libpurple/protocols/msn/notification.c
@@ -309,6 +309,7 @@ msn_notification_close(MsnNotification *notification)
trans = msn_transaction_new(notification->cmdproc, "OUT", NULL);
msn_transaction_set_saveable(trans, FALSE);
msn_cmdproc_send_trans(notification->cmdproc, trans);
+ msn_transaction_destroy(trans);
msn_notification_disconnect(notification);
}
diff --git a/libpurple/protocols/msn/object.c b/libpurple/protocols/msn/object.c
index ce0ce0ffab..bee264109a 100644
--- a/libpurple/protocols/msn/object.c
+++ b/libpurple/protocols/msn/object.c
@@ -202,6 +202,8 @@ msn_object_destroy(MsnObject *obj)
g_free(obj->friendly);
g_free(obj->sha1d);
g_free(obj->sha1c);
+ g_free(obj->url);
+ g_free(obj->url1);
purple_imgstore_unref(obj->img);
diff --git a/libpurple/protocols/msn/sbconn.c b/libpurple/protocols/msn/sbconn.c
index c84284f512..b312d5c129 100644
--- a/libpurple/protocols/msn/sbconn.c
+++ b/libpurple/protocols/msn/sbconn.c
@@ -16,10 +16,10 @@ void msn_sbconn_send_part(MsnSlpLink *slplink, MsnSlpMessagePart *part)
passport = purple_normalize(slplink->session->account, slplink->remote_user);
msn_message_set_header(msg, "P2P-Dest", passport);
- data = msn_slpmsgpart_serialize(part, &size);
msg->part = msn_slpmsgpart_ref(part);
-
+ data = msn_slpmsgpart_serialize(part, &size);
msn_message_set_bin_data(msg, data, size);
+ g_free(data);
if (slplink->swboard == NULL)
{
@@ -33,6 +33,7 @@ void msn_sbconn_send_part(MsnSlpLink *slplink, MsnSlpMessagePart *part)
}
msn_switchboard_send_msg(slplink->swboard, msg, TRUE);
+ msn_message_destroy(msg);
}
/** Called when a message times out. */
diff --git a/libpurple/protocols/msn/slpcall.c b/libpurple/protocols/msn/slpcall.c
index c46d7057ec..99fa26f91e 100644
--- a/libpurple/protocols/msn/slpcall.c
+++ b/libpurple/protocols/msn/slpcall.c
@@ -826,6 +826,7 @@ got_ok(MsnSlpCall *slpcall,
/* Try direct file transfer by sending a second INVITE */
dc = msn_dc_new(slpcall);
+ g_free(slpcall->branch);
slpcall->branch = rand_guid();
dc->listen_data = purple_network_listen_range(
diff --git a/libpurple/protocols/msn/slplink.c b/libpurple/protocols/msn/slplink.c
index 20821bc7b6..0dff16906a 100644
--- a/libpurple/protocols/msn/slplink.c
+++ b/libpurple/protocols/msn/slplink.c
@@ -502,7 +502,6 @@ process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PHeader *h
slpcall = msn_slp_process_msg(slplink, slpmsg);
if (slpcall == NULL) {
- msn_slpmsg_destroy(slpmsg);
return;
}
@@ -541,8 +540,6 @@ process_complete_msg(MsnSlpLink *slplink, MsnSlpMessage *slpmsg, MsnP2PHeader *h
}
}
- msn_slpmsg_destroy(slpmsg);
-
if (!slpcall->wait_for_socket && slpcall->wasted)
msn_slpcall_destroy(slpcall);
}
@@ -625,6 +622,8 @@ msn_slplink_process_msg(MsnSlpLink *slplink, MsnSlpMessagePart *part)
/* All the pieces of the slpmsg have been received */
if (header->offset + header->length >= header->total_size)
process_complete_msg(slplink, slpmsg, header);
+
+ msn_slpmsg_destroy(slpmsg);
}
void
diff --git a/libpurple/protocols/msn/slpmsg_part.c b/libpurple/protocols/msn/slpmsg_part.c
index 9209439ad3..f614c208c9 100644
--- a/libpurple/protocols/msn/slpmsg_part.c
+++ b/libpurple/protocols/msn/slpmsg_part.c
@@ -109,8 +109,7 @@ void msn_slpmsgpart_set_bin_data(MsnSlpMessagePart *part, const void *data, size
{
g_return_if_fail(part != NULL);
- if (part->buffer != NULL)
- g_free(part->buffer);
+ g_free(part->buffer);
if (data != NULL && len > 0) {
part->buffer = g_malloc(len + 1);
diff --git a/libpurple/protocols/msn/switchboard.c b/libpurple/protocols/msn/switchboard.c
index f875a35ecf..1bbe450cb5 100644
--- a/libpurple/protocols/msn/switchboard.c
+++ b/libpurple/protocols/msn/switchboard.c
@@ -1147,6 +1147,7 @@ msn_switchboard_close(MsnSwitchBoard *swboard)
trans = msn_transaction_new(cmdproc, "OUT", NULL);
msn_transaction_set_saveable(trans, FALSE);
msn_cmdproc_send_trans(cmdproc, trans);
+ msn_transaction_destroy(trans);
msn_switchboard_destroy(swboard);
}