# HG changeset patch # User Jussi Judin # Date 1199486852 21600 # Node ID 689bdfacb10cc571b2880d333320511c16390300 # Parent cd57c9fe416ebb8ce196f1c459d9b958b7a0047c Fixes memory leaks in scrobbler plugin when submitting songs. (Bugzilla #83) diff -r cd57c9fe416e -r 689bdfacb10c src/scrobbler/scrobbler.c --- a/src/scrobbler/scrobbler.c Thu Jan 03 15:48:50 2008 +0100 +++ b/src/scrobbler/scrobbler.c Fri Jan 04 16:47:32 2008 -0600 @@ -673,12 +673,18 @@ curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); /*cfa(&post, &last, "debug", "failed");*/ + char *field_artist = fmt_escape(aud_tuple_get_string(tuple, FIELD_ARTIST, NULL)); + char *field_title = fmt_escape(aud_tuple_get_string(tuple, FIELD_TITLE, NULL)); + char *field_album = aud_tuple_get_string(tuple, FIELD_ALBUM, NULL) ? fmt_escape(aud_tuple_get_string(tuple, FIELD_ALBUM, NULL)) : fmt_escape(""); entry = g_strdup_printf("s=%s&a=%s&t=%s&b=%s&l=%d&n=%d&m=", sc_session_id, - fmt_escape(aud_tuple_get_string(tuple, FIELD_ARTIST, NULL)), - fmt_escape(aud_tuple_get_string(tuple, FIELD_TITLE, NULL)), - aud_tuple_get_string(tuple, FIELD_ALBUM, NULL) ? fmt_escape(aud_tuple_get_string(tuple, FIELD_ALBUM, NULL)) : "", + field_artist, + field_title, + field_album, aud_tuple_get_int(tuple, FIELD_LENGTH, NULL) / 1000, aud_tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL)); + curl_free(field_artist); + curl_free(field_title); + curl_free(field_album); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, (char *) entry); memset(sc_curl_errbuf, 0, sizeof(sc_curl_errbuf)); @@ -741,6 +747,7 @@ status = curl_easy_perform(curl); curl_easy_cleanup(curl); + g_string_free(submission, TRUE); if (status) { pdebug(sc_curl_errbuf, DEBUG);