Bug 129500

Summary: gaim segfaults when joining jabber chat
Product: [Fedora] Fedora Reporter: Sean Dilda <agrajag>
Component: gaimAssignee: Daniel Reed <djr>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 1CC: eblanton, lschiere+bugs, mark, stu, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-09-26 04:00:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sean Dilda 2004-08-09 19:48:52 UTC
Using gaim-0.81-0.FC1, it segfaults when logging into jabber.

I start gaim with 'gaim -a' (so no other protocols are in use), click
to log into jabber, type my password, then receive a segfault.

My account has 'Use TLS if available' and 'Force old SSL' selected.

GDB output:

[agrajag@pel agrajag]$ gdb gaim
GNU gdb Red Hat Linux (5.3.90-0.20030710.41rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-redhat-linux-gnu"...
(no debugging symbols found)...Using host libthread_db library
"/lib/tls/libthread_db.so.1".
 
(gdb) handle SIGPIPE nostop
Signal        Stop      Print   Pass to program Description
SIGPIPE       No        Yes     Yes             Broken pipe
(gdb) run -a
Starting program: /usr/bin/gaim -a
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...[Thread
debugging using libthread_db enabled]
[New Thread -1084820192 (LWP 13292)]
 
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1084820192 (LWP 13292)]
0x0015ee44 in jabber_presence_parse () from /usr/lib/gaim/libjabber.so
(gdb) quit

Comment 1 Seth Vidal 2004-08-09 20:25:09 UTC
could install gaim-debuginfo and try again?

Comment 2 Sean Dilda 2004-08-09 20:31:15 UTC
Heres the gdb with the debuginfo:

GNU gdb Red Hat Linux (5.3.90-0.20030710.41rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and
you are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host
libthread_db library "/lib/tls/libthread_db.so.1".
 
(gdb) run -a
Starting program: /usr/bin/gaim -a
[Thread debugging using libthread_db enabled]
[New Thread -1085041376 (LWP 14201)]
 
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1085041376 (LWP 14201)]
0x00c77e44 in jabber_presence_parse (js=0x8c65c30, packet=0x8c6ac20)
    at presence.c:406
406                             if (!strcmp(role, "moderator"))
(gdb) bt
#0  0x00c77e44 in jabber_presence_parse (js=0x8c65c30, packet=0x8c6ac20)
    at presence.c:406
#1  0x00c702b2 in jabber_process_packet (js=0x8c65c30, packet=0x8c6ac20)
    at jabber.c:163
#2  0x00c76d23 in jabber_parser_element_end (context=0x8c65598,
    element_name=0x21 <Address 0x21 out of bounds>, user_data=0x8c65c30,
    error=0xbff48398) at parser.c:87
#3  0x006bd51a in g_markup_parse_context_parse ()
   from /usr/lib/libglib-2.0.so.0
#4  0x00c76e19 in jabber_parser_process (js=0x8c65c30,
    buf=0x21 <Address 0x21 out of bounds>, len=33) at parser.c:128
#5  0x00c7054e in jabber_recv_cb_ssl (data=0x8c65a08, gsc=0x6f,
    cond=GAIM_INPUT_READ) at jabber.c:242
#6  0x0809641d in recv_cb (data=0x21, source=9, cond=GAIM_INPUT_READ)
    at sslconn.c:116
#7  0x080cf35f in gaim_gtk_io_invoke (source=0x21, condition=33,
    data=0x8c41290) at gtkeventloop.c:61
#8  0x006d9ccf in g_vsnprintf () from /usr/lib/libglib-2.0.so.0
#9  0x006b8fdd in unblock_source () from /usr/lib/libglib-2.0.so.0
#10 0x006b9fd8 in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#11 0x006ba2ef in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#12 0x006ba9cf in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#13 0x074c644f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#14 0x08c3a2a0 in ?? ()
(gdb) quit
The program is running.  Exit anyway? (y or n) y


Comment 3 Sean Dilda 2004-08-09 20:36:32 UTC
After glancing at the backtrace, I realized it might be that I have a
jabber chat set to auto-join.  I turned that off, tried with 0.81
again and was able to log onto jabber without a problem.  But when I
then tried to join a chat, it segfaulted.

Comment 4 Warren Togami 2004-08-09 20:39:58 UTC
Was this working fine in FC's official 0.80?


Comment 5 Warren Togami 2004-08-09 20:48:51 UTC
<deryni> warren: Can you find out what was printed to the debug log
when that crash happens? Right before the jabber_parser_process call
is a gaim_debug with the args passed to jabber_parser_process.
<warren> deryni, run with -d?
<deryni> That will print debug info to terminal, yes.

Comment 6 Sean Dilda 2004-08-09 21:00:08 UTC
Yes, this worked in 0.80.

Here's the debug log that was printed when I tried to join a jabber chat:

jabber: Sending (ssl): <presence
to='milkshake-cabal.linux.duke.edu/Jag'><x
xmlns='http://jabber.org/protocol/muc'/></presence>
jabber: Recv (ssl)(108): <presence
to='sean.duke.edu/Gaim'
from='milkshake-cabal.linux.duke.edu/Jag'/>
Gaim has segfaulted and attempted to dump a core file.
This is a bug in the software and has happened through
no fault of your own.


Comment 7 Mark Doliner 2004-08-09 22:53:49 UTC
I think we have 2 proposed patches to fix this:
http://nosnilmot.com/patches/gaim-0.81-jabber-joincrashfix.patch
and
http://sourceforge.net/tracker/index.php?func=detail&aid=1006259&group_id=235&atid=300235

I don't know if either of them fix it, or if they're correct.  We're
waiting on our jabber guy to get DSL, or commandeer someone elses
internet connection.

Sean, do you know what Jabber server and version is running on
conference.jabber.linux.duke.edu?  Someone mentioned that they thought
the crash only happened with jabber servers that don't conform to a
jabber spec perfectly.

Comment 8 Seth Vidal 2004-08-10 06:28:02 UTC
duke jabber server is jabberd 1.4.3 from jabber.org.

There are hundreds others just like it, so if it is not conforming
then maybe it is a 'deviation' that should be supported. :)

Comment 9 Warren Togami 2004-08-11 21:17:26 UTC
http://sourceforge.net/tracker/index.php?func=detail&aid=1006259&group_id=235&atid=300235
Upstream gaim is going with this patch, so I am applying this to our
gaim.  PLEASE TEST AND VERIFY THAT IT ACTUALLY WORKS.


Comment 10 Mark Doliner 2004-08-12 01:10:29 UTC
The actual patch we applied is
http://nosnilmot.com/patches/gaim-0.81-jabber-joincrashfix-v2.patch

Comment 11 Sean Dilda 2004-08-12 01:21:56 UTC
The patch off sourceforge is no longer available.  However, it does
link to the patch off of nosnilmot.com.  I tried that patch, and it
does work.