pidgin: 7a36a9ec: patch from Andrew Gaul that fixes a meml...

Richard Laager rlaager at wiktel.com
Thu Jul 3 12:27:47 EDT 2008


The revision below reverts half (the other half was to yahoo_profile.c)
of 7a490c356e10f7fff3432f875897aa0ca0ad1ff0, which Daniel committed from
a Debian patch with this commit message:

        Fix a double-free in the yahoo profile/icon handling. This is from a downstream
        Debian patch that has apparently been around forever, wasn't submitted to us.
        Fixes #5889.

Should this code be there or not?

Richard

On Sun, 2008-06-08 at 18:21 -0400, khc at pidgin.im wrote:
> -----------------------------------------------------------------
> Revision: 7a36a9ecbcc902ee89656d5267e613aa1dc0b889
> Ancestor: 9409309cfd4634425fdacbdb3d751afd0bc89a84
> Author: khc at pidgin.im
> Date: 2008-06-08T21:54:56
> Branch: im.pidgin.pidgin
> URL: http://d.pidgin.im/viewmtn/revision/info/7a36a9ecbcc902ee89656d5267e613aa1dc0b889
> 
> Modified files:
>         libpurple/protocols/yahoo/yahoo_picture.c
> 
> ChangeLog: 
> 
> patch from Andrew Gaul that fixes a memleak, we weren't free'ing this when
> we can't connect to fetch the image, I think:
> 
> ==2802== 34 (24 direct, 10 indirect) bytes in 1 blocks are definitely lost in loss record 48 of 289
> ==2802==    at 0x4A05854: calloc (vg_replace_malloc.c:397)
> ==2802==    by 0x331303F849: g_malloc0 (in /lib64/libglib-2.0.so.0.1600.3)
> ==2802==    by 0xE653A86: yahoo_process_picture (yahoo_picture.c:130)
> ==2802==    by 0xE6474C4: yahoo_packet_process (yahoo.c:2448)
> ==2802==    by 0xE648A42: yahoo_pending (yahoo.c:2575)
> ==2802==    by 0x461B9D: pidgin_io_invoke (gtkeventloop.c:78)
> ==2802==    by 0x331303749A: g_main_context_dispatch (in /lib64/libglib-2.0.so.0.1600.3)
> ==2802==    by 0x331303AC7C: (within /lib64/libglib-2.0.so.0.1600.3)
> ==2802==    by 0x331303B1AC: g_main_loop_run (in /lib64/libglib-2.0.so.0.1600.3)
> ==2802==    by 0x3317584887: gtk_main (in /usr/lib64/libgtk-x11-2.0.so.0.1200.9)
> ==2802==    by 0x4788A7: main (gtkmain.c:893)
> 
> 
> ============================================================
> --- libpurple/protocols/yahoo/yahoo_picture.c	05fbd6522ca9ae39456fe30df33e6e9ca6692323
> +++ libpurple/protocols/yahoo/yahoo_picture.c	27742c3cbc0f6a47db0f3953e1d6fa9fbcadf219
> @@ -137,6 +137,9 @@ void yahoo_process_picture(PurpleConnect
>  		if (url_data != NULL) {
>  			yd = gc->proto_data;
>  			yd->url_datas = g_slist_prepend(yd->url_datas, url_data);
> +		} else {
> +			g_free(data->who);
> +			g_free(data);
>  		}
>  	} else if (who && send_icon_info) {
>  		yahoo_send_picture_info(gc, who);
> _______________________________________________
> Commits mailing list
> Commits at pidgin.im
> http://pidgin.im/cgi-bin/mailman/listinfo/commits
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://pidgin.im/pipermail/devel/attachments/20080703/603a37f3/attachment.sig>


More information about the Devel mailing list