summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eionrobb@gmail.com>2016-01-21 21:12:51 +1300
committerEion Robb <eionrobb@gmail.com>2016-01-21 21:12:51 +1300
commit8f0aad401a66280e58ad210da3cbf5f359589a8e (patch)
treea595d2bd3c19e8469f705a56dbdfde1ddfc2ccfe
parentb0eb82fc5ae56ec394e7cd5cceca80f2a3cae50d (diff)
downloadpidgin-8f0aad401a66280e58ad210da3cbf5f359589a8e.tar.gz
Add memleak fixup to Yahoo prpl after cookie getter API change
-rw-r--r--libpurple/protocols/yahoo/ymsg.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/libpurple/protocols/yahoo/ymsg.c b/libpurple/protocols/yahoo/ymsg.c
index e47278e6ad..d83482e11e 100644
--- a/libpurple/protocols/yahoo/ymsg.c
+++ b/libpurple/protocols/yahoo/ymsg.c
@@ -1705,9 +1705,9 @@ static void yahoo_auth16_stage2(PurpleHttpConnection *http_conn,
"\r\n", -1);
cookiejar = purple_http_conn_get_cookie_jar(http_conn);
- yd->cookie_b = g_strdup(purple_http_cookie_jar_get(cookiejar, "B"));
- yd->cookie_t = g_strdup(purple_http_cookie_jar_get(cookiejar, "T"));
- yd->cookie_y = g_strdup(purple_http_cookie_jar_get(cookiejar, "Y"));
+ yd->cookie_b = purple_http_cookie_jar_get(cookiejar, "B");
+ yd->cookie_t = purple_http_cookie_jar_get(cookiejar, "T");
+ yd->cookie_y = purple_http_cookie_jar_get(cookiejar, "Y");
i = 0;
while (splits[i]) {
@@ -3214,7 +3214,7 @@ yahoo_login_page_got(PurpleHttpConnection *hc, PurpleHttpResponse *resp,
PurpleAccount *account = purple_connection_get_account(gc);
PurpleHttpCookieJar *cjar;
GString *auth_s;
- const gchar *cookie;
+ gchar *cookie;
if (purple_http_response_get_code(resp) != 302) {
purple_connection_error(gc,
@@ -3226,14 +3226,20 @@ yahoo_login_page_got(PurpleHttpConnection *hc, PurpleHttpResponse *resp,
auth_s = g_string_new(NULL);
cjar = purple_http_conn_get_cookie_jar(hc);
cookie = purple_http_cookie_jar_get(cjar, "B");
- if (cookie)
+ if (cookie) {
g_string_append_printf(auth_s, "B=%s; ", cookie);
+ g_free(cookie);
+ }
cookie = purple_http_cookie_jar_get(cjar, "T");
- if (cookie)
+ if (cookie) {
g_string_append_printf(auth_s, "T=%s; ", cookie);
+ g_free(cookie);
+ }
cookie = purple_http_cookie_jar_get(cjar, "Y");
- if (cookie)
+ if (cookie) {
g_string_append_printf(auth_s, "Y=%s; ", cookie);
+ g_free(cookie);
+ }
yd->auth = g_string_free(auth_s, FALSE);
/* Now we have our cookies to login with. I'll go get the milk. */