[Pidgin] #11595: libpurple - MSN crashes when sending file
Pidgin
trac at pidgin.im
Sun Mar 28 03:04:00 EDT 2010
#11595: libpurple - MSN crashes when sending file
--------------------+-------------------------------------------------------
Reporter: hanzz | Owner: QuLogic
Type: defect | Status: new
Milestone: | Component: MSN
Version: 2.6.6 | Resolution:
Keywords: |
--------------------+-------------------------------------------------------
Comment(by hanzz):
Yes, Pidgin is always ready. Let me explain it better.
This crash happens only when UI is not ready when msg_ack is called, so
Pidgin is not affected, because it's always ready that time. Problem is
that MsnMessage *msg is unrefed (in switchboard.c:ack_cmd(MsnCmdProc
*cmdproc, MsnCommand *cmd)) and refcount == 0, so it's destroyed, but
we're storing pointer to it (in slpmsg->msg) which is used when UI becomes
ready (see the backtrace).
It works well in Pidgin, because
purple_xfer_prpl_ready(slpmsg->slpcall->xfer) calls msn_xfer_write
_before_ MsnMessage *msg is destroyed, but in my transport it doesn't
work, because purple_xfer_prpl_ready just set PURPLE_UI_READY flag and
waits for UI and msn_xfer_write is called just when purple_xfer_ui_ready
is called (so basically after msg_ack function => MsnMessage *msg is
destroyed, but libpurple uses it)
I hope this will help to understand that crash better ;).
--
Ticket URL: <http://developer.pidgin.im/ticket/11595#comment:5>
Pidgin <http://pidgin.im>
Pidgin
More information about the Tracker
mailing list