[Pidgin] #2972: Jabber protocol crashes when canceling file transfer ...
Pidgin
trac at pidgin.im
Thu Sep 6 10:54:19 EDT 2007
#2972: Jabber protocol crashes when canceling file transfer ...
-----------------------+----------------------------------------------------
Reporter: msfbrasil | Type: defect
Status: new | Priority: minor
Component: libpurple | Version: 2.1.1
Keywords: | Pending: 0
-----------------------+----------------------------------------------------
Hello there!
Despite this crash was already reported on tickets 2641 and 1804, I
decided to open a new one because of some disagreements regarding
conditions, the component envolved (that is the libpurple library), and
considering that the callstack I have is more complete.
The description of the conditions to replicate the problem presented on
ticket 1804 is almost right, because now the crash happens only when the
contact accepts the file transfer that was already canceled by the user.
Rejection of the file transfer causes no more crashes.
The callstack is not complete, because I got the crash using another
application that uses libpurple, and is below:
libuold.dll!jabber_si_xfer_bytestreams_send_init(_PurpleXfer *
xfer=0x039b5178) Line 615 + 0x1a C
libuold.dll!jabber_si_xfer_send_method_cb(_JabberStream * js=0x03915238,
_xmlnode * packet=0x039834f0, void * data=0x039b5178) Line 653 + 0x9 C
libuold.dll!jabber_iq_parse(_JabberStream * js=0x03915238, _xmlnode *
packet=0x039834f0) Line 322 + 0x16 C
libuold.dll!jabber_process_packet(_JabberStream * js=0x03915238, _xmlnode
* packet=0x039834f0) Line 185 + 0xd C
libuold.dll!jabber_parser_element_end_libxml(void * user_data=0x03915238,
const unsigned char * element_name=0x03987ed9, const unsigned char *
prefix=0x00000000, const unsigned char * namespace=0x03987e5b) Line 116 +
0xd C
I don't know the right place to handle this situation, but a simple test
"if (!xfer->data) return;" on method
"jabber_si_xfer_bytestreams_send_init" don't let the crash happen.
I think this only test is enough considering that method
"purple_xfer_cancel_local" should be already called when the user canceled
the file transfer, and everything should be ok (ok = freed, release, etc)
by now.
Thank's and best regards!!!
Mauro.
--
Ticket URL: <http://developer.pidgin.im/ticket/2972>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list