diff options
author | Eion Robb <eionrobb@gmail.com> | 2016-01-21 21:12:51 +1300 |
---|---|---|
committer | Eion Robb <eionrobb@gmail.com> | 2016-01-21 21:12:51 +1300 |
commit | 8f0aad401a66280e58ad210da3cbf5f359589a8e (patch) | |
tree | a595d2bd3c19e8469f705a56dbdfde1ddfc2ccfe | |
parent | b0eb82fc5ae56ec394e7cd5cceca80f2a3cae50d (diff) | |
download | pidgin-8f0aad401a66280e58ad210da3cbf5f359589a8e.tar.gz |
Add memleak fixup to Yahoo prpl after cookie getter API change
-rw-r--r-- | libpurple/protocols/yahoo/ymsg.c | 20 |
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. */ |