Mercurial > pidgin.yaz
view valgrind-suppressions @ 31518:b39b6d0008c5
upnp: Asynch-ronize the callbacks from UPnP to calling code. Refs #12387
I have no idea if this will resolve the crashes, but with the help of the
packet capture, I /think/ these are correct.
Short summary: it's possible for the callback to fire (and ar be freed) before
the top-level function (purple_upnp_cancel_port_mapping) returns, even though
cancel_port_mapping returns the now-invalid ar (which may lead to a subsequent
use-after-free).
At least one call path through the code that I think leads to this (backed
up by one of the debug logs I looked at):
purple_upnp_cancel_port_mapping(...)
do_port_mapping_cb (has_control_mapping == TRUE, ar->add == FALSE)
purple_upnp_generate_action_message_and_send(..., done_port_mapping_cb, ar)
/* We fail to parse the URL (see some debug logs) */
done_port_mapping_cb
ar->cb(FALSE, cbdata)
return;
return;
return;
return ar;
...and something which calls:
do_port_mapping_cb(has_control_mapping == TRUE, ar->add == TRUE)
ar->cb(FALSE, cbdata)
g_free(ar)
return;
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Tue, 28 Dec 2010 05:37:20 +0000 |
parents | a8d6f071eb6d |
children |
line wrap: on
line source
{ X oddness 1 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XReply } { NSS Memcheck:Cond obj:/usr/lib/libsoftokn3.so obj:/usr/lib/libsoftokn3.so obj:/usr/lib/libsoftokn3.so obj:/usr/lib/libsoftokn3.so } { X oddness 2 Memcheck:Param writev(vector[...]) fun:writev obj:/usr/X11R6/lib/libX11.so.6.2 fun:_X11TransWritev fun:_XSend } { X oddness 3 Memcheck:Cond fun:XcursorImageHash fun:XcursorNoticePutBitmap fun:_XNoticePutBitmap fun:XPutImage } { X oddness 4 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XFlush } { X oddness 5 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XDrawLine } { X oddness 6 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XEventsQueued } { File selector Memcheck:Value4 fun:_itoa_word fun:_IO_vfprintf_internal fun:_IO_vsprintf_internal fun:_IO_sprintf } { File selector 2 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XRenderComposite } { TCL leak Memcheck:Leak fun:malloc fun:TclpAlloc fun:Tcl_Alloc fun:Tcl_StaticPackage } { FontConfig Maybe Memcheck:Leak fun:malloc fun:FcStrCopy fun:FcStrSetAdd fun:FcLangSetCopy } { File selector 3 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XFlushGCCache } { File selector 4 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XCreateGC } { Something else Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XSetClipRectangles } { New conversation windows Memcheck:Cond obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 } { New conversation windows 2 Memcheck:Cond obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgobject-2.0.so.0.400.8 } { NSS Init Memcheck:Leak fun:malloc fun:PR_Malloc fun:PR_CreateStack fun:_PR_InitFdCache fun:_PR_InitIO fun:_PR_ImplicitInitialization fun:PR_Init fun:rsa_nss_init fun:GE_plugin_load fun:purple_plugin_load fun:purple_plugins_load_saved fun:main }