List Info

Thread: Jabber crash when remote side responds after local cancel




Jabber crash when remote side responds after local cancel
country flaguser name
United States
2007-03-31 21:22:27
I've received the following crash report and was wondering if anyone had an idea for a solution:
Thread 0 Crashed:
0   Libgaim                        0x07f8710c jabber_si_xfer_bytestreams_send_init   68
1   Libgaim                        0x07f87244 jabber_si_xfer_send_method_cb   252
2   Libgaim                        0x07f7c7ac jabber_iq_parse   252
3   Libgaim                        0x07f7cffc jabber_process_packet   116
4   Libgaim                        0x07f83cdc jabber_parser_element_end_libxml   88
5   libxml2.2.dylib                0x92c9e834 xmlParseStartTag   9176
6   libxml2.2.dylib                0x92ca0890 xmlParseDocument   4812
7   libxml2.2.dylib                0x92c84c0c xmlParseChunk   424
8   Libgaim                        0x07f83df0 jabber_parser_process   116
9   Libgaim                        0x07f7d794 jabber_recv_cb   148
10  com.apple.CoreFoundation       0x907f03b4 __CFSocketDoCallback   532

The transfer had been cancelled locally (and successfully). It looks like after that cancel, the remote side sent a reply.  Now, when jabber_si_xfer_send_request() sets up the iq, it associates the xfer with it, and jabber_si_xfer_send_method_cb() then has that GaimXfer as data when the iq comes in.

However, jabber_si_xfer_send_request() doesn't increment the reference count... in fact, jabber_si_xfer_bytestreams_send_init() does.  At this stage in the game, it's too late, because the ref count was already taken down to 0.  I think jabber_si_xfer_send_request() needs to do the reference increment.. but I'm not sure where it should then be decremented.  Thoughts?

-Evan
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )