[Pidgin] #1860: Crash in bonjour when user signs on

Pidgin trac at pidgin.im
Thu Jun 21 01:28:05 EDT 2007


#1860: Crash in bonjour when user signs on
----------------------------+-----------------------------------------------
 Reporter:  astronouth7303  |       Type:  defect
   Status:  new             |   Priority:  minor 
Component:  libpurple       |    Version:  2.0.2 
 Keywords:                  |    Pending:  0     
----------------------------+-----------------------------------------------
 On Ubuntu 7.04, using Avahi and the howl compat libraries, and pidgin
 2.0.2 compiled from source.

 When another uses signs on using bonjour, pidgin segfaults with wild
 pointer.

 Stack trace:
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread -1223534368 (LWP 11866)]
 0xb7663e90 in purple_account_get_protocol_id (account=0x62616a2d)
     at account.c:1726
 1726            if (!strcmp(account->protocol_id, "prpl-oscar")) {
 #0  0xb7663e90 in purple_account_get_protocol_id (account=0x62616a2d)
     at account.c:1726
         __PRETTY_FUNCTION__ = "purple_account_get_protocol_id"
 #1  0xb6fae5fa in get_stats_for (buddy=<value optimized out>) at cap.c:37
         buddy_name = <value optimized out>
         stats = (CapStatistics *) 0x8a02800
         __PRETTY_FUNCTION__ = "get_stats_for"
 #2  0xb6faeb01 in buddy_signed_on (buddy=0x895e468) at cap.c:411
         stats = <value optimized out>
 #3  0xb769f3c8 in purple_marshal_VOID__POINTER (
     cb=0xb6faeaf0 <buddy_signed_on>, args=0xbf86c218 "hä\225\bO>å¶",
 data=0x0,
     return_val=0x0) at signals.c:628
 No locals.
 #4  0xb769fdc7 in purple_signal_emit_vargs (instance=0xb76f4c68,
     signal=0xb76db0c3 "buddy-signed-on", args=0xbf86c218 "hä\225\bO>å¶")
     at signals.c:481
         handler_data = (PurpleSignalHandlerData *) 0x890cec0
         l = <value optimized out>
         l_next = (GList *) 0x839c860
         tmp = 0xbf86c218 "hä\225\bO>å¶"
         __PRETTY_FUNCTION__ = "purple_signal_emit_vargs"
 #5  0xb769fefc in purple_signal_emit (instance=0xb, signal=0x890cec0 "")
     at signals.c:433
         args = 0xbf86c218 "hä\225\bO>å¶"
         __PRETTY_FUNCTION__ = "purple_signal_emit"
 #6  0xb766afdb in purple_blist_update_buddy_status (buddy=0x895e468,
     old_status=0x86cdd98) at blist.c:775
         ops = (PurpleBlistUiOps *) 0x80f2e60
         presence = <value optimized out>
         status = (PurpleStatus *) 0x88c3ee0
         __PRETTY_FUNCTION__ = "purple_blist_update_buddy_status"
 #7  0xb7697e0b in purple_prpl_got_user_status (account=0x81691b8,
     name=0x88c7be0 "proeg at a645064", status_id=0xb6e53e8f "available")
     at prpl.c:161
         list = (GSList *) 0x884b140
         l = (GSList *) 0x884b140
         buddy = (PurpleBuddy *) 0x895e468
         presence = <value optimized out>
         status = (PurpleStatus *) 0x88c3ee0
         old_status = (PurpleStatus *) 0x86cdd98
         args = 0xbf86c28c ""
         __PRETTY_FUNCTION__ = "purple_prpl_got_user_status"
 #8  0xb6e51ab1 in bonjour_buddy_add_to_purple (account=0x81691b8,
     bonjour_buddy=0x8717fb8) at buddy.c:135
         buddy = (PurpleBuddy *) 0x895e468
         group = (PurpleGroup *) 0x8275d48
         status_id = 0xb6e53e8f "available"
         first = <value optimized out>
         last = <value optimized out>
         alias = 0x89584c8 "proegssilb"
 #9  0xb6e5294b in _resolve_reply (discovery=0x884b7c8, oid=3,
     interface_index=2, name=0x82c7834 "proeg at a645064",
     type=0x82c7848 "_presence._tcp", domain=0x82c785c "local", address=
       {m_addr = 67283136}, port=5298,
     text_record=0x8760440
 "'org.freedesktop.Avahi.cookie=2748455096\003vc=\fstatus=avail\005phsh=\016port.p2pj=5298\005last=\0161st=proegssilb\tversion=1\ttxtvers=1",
 text_record_len=3068477978, extra=0x81691b8) at dns_sd.c:132
         buddy = (BonjourBuddy *) 0x8717fb8
         txtvers = (gchar *) 0x895a288 "1"
         version = (gchar *) 0x8760178 "1"
         first = (gchar *) 0x82c79f0 "proegssilb"
         phsh = (gchar *) 0x890fd80 ""
         status = (gchar *) 0x886d5f8 "avail"
         email = (gchar *) 0x0
         last = (gchar *) 0x8828100 ""
         jid = (gchar *) 0x0
         AIM = (gchar *) 0x0
         vc = (gchar *) 0x89f3278 ""
         msg = (gchar *) 0x0
         iterator = (sw_text_record_iterator) 0x88c6448
         key = "txtvers", '\0' <repeats 247 times>
         value = "1", '\0' <repeats 253 times>
         value_length = 1
 #10 0xb6e34e3c in ?? () from /usr/lib/libhowl.so.0
 No symbol table info available.
 #11 0x0884b7c8 in ?? ()
 No symbol table info available.
 #12 0x00000003 in ?? ()
 No symbol table info available.
 #13 0x00000002 in ?? ()
 No symbol table info available.
 #14 0x082c7834 in ?? ()
 No symbol table info available.
 #15 0x082c7848 in ?? ()
 No symbol table info available.
 #16 0x082c785c in ?? ()
 No symbol table info available.
 #17 0x0402a8c0 in ?? ()
 No symbol table info available.
 #18 0x000014b2 in ?? ()
 No symbol table info available.
 #19 0x08760440 in ?? ()
 No symbol table info available.
 #20 0x00000077 in ?? ()
 No symbol table info available.
 #21 0x081691b8 in ?? ()
 No symbol table info available.
 #22 0x00000016 in ?? ()
 No symbol table info available.
 #23 0x088c39e8 in ?? ()
 No symbol table info available.
 #24 0x14b20016 in ?? ()
 No symbol table info available.
 #25 0x082c785c in ?? ()
 No symbol table info available.
 #26 0x082c7848 in ?? ()
 No symbol table info available.
 #27 0x082c7834 in ?? ()
 No symbol table info available.
 #28 0xb6e523e0 in ?? () at dns_sd.c:318
    from /usr/local/lib/purple-2/libbonjour.so
 No locals.
 #29 0x08760440 in ?? ()
 No symbol table info available.
 #30 0x0402a8c0 in ?? ()
 No symbol table info available.
 #31 0x36610174 in ?? ()
 No symbol table info available.
 #32 0x36303534 in ?? ()
 No symbol table info available.
 #33 0x6f6c2e34 in ?? ()
 No symbol table info available.
 #34 0x2e6c6163 in ?? ()
 No symbol table info available.
 #35 0x08109800 in ?? ()
 No symbol table info available.
 #36 0x0890fd80 in ?? ()
 No symbol table info available.
 #37 0x00000008 in ?? ()
 No symbol table info available.
 #38 0xb790459c in ?? () from /usr/lib/libcairo.so.2
 No symbol table info available.
 #39 0x04a020e8 in ?? ()
 No symbol table info available.
 #40 0x08207cf0 in ?? ()
 No symbol table info available.
 #41 0x08207cf0 in ?? ()
 No symbol table info available.
 #42 0x00000000 in ?? ()
 No symbol table info available.
 }}}

 The "account" variable in frame #0 is the wild pointer. ie,
 "account->protocol_id" caused the segfault.

-- 
Ticket URL: <http://developer.pidgin.im/ticket/1860>
Pidgin <http://pidgin.im>
Pidgin


More information about the Tracker mailing list