[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