[JDEV] AIM away messages. (was: AIM-t crashes)
dman
dman at dman.ddts.net
Mon Apr 1 18:14:36 CST 2002
(temas, I can't find an A or MX record for your email domain, thus
sending on-list)
On Mon, Apr 01, 2002 at 11:06:15AM -0600, Thomas Muldowney wrote:
| Pres handling is a bit borked in cvs. I'm working on it.
I've been doing some testing of it (-latest, actually). Yesterday I
finally got a core dump from the intermitten segfaults I've seen, so I
sent the backtrace and a tentative patch to maqi. If you want I can
host a poor-man's mailing list for aim-t development. Anyways, here's
the message I sent him.
~~~~~~~~~~~~~~~~~~
(gdb) bt
#0 0x402ad7e5 in at_parse_incoming_im (ass=0x8277a78, command=0x823ca00)
at messages.c:34
#1 0x402a80be in incomingim_ch1 (sess=0x8277a78, mod=0x8277d50, rx=0x823ca00,
snac=0x830e2f0, channel=1, userinfo=0x830e1f0, bs=0x823ca10,
cookie=0x830e260 "úak¥\230B4") at im.c:1053
#2 0x402a8e80 in incomingim (sess=0x8277a78, mod=0x8277d50, rx=0x823ca00,
snac=0x830e2f0, bs=0x823ca10) at im.c:1577
#3 0x402a9746 in snachandler (sess=0x8277a78, mod=0x8277d50, rx=0x823ca00,
snac=0x830e2f0, bs=0x823ca10) at im.c:1787
#4 0x402b1e07 in consumesnac (sess=0x8277a78, rx=0x823ca00)
at rxhandlers.c:117
#5 0x402b2849 in aim_rxdispatch (sess=0x8277a78) at rxhandlers.c:571
#6 0x402b837f in at_session_main (arg=0x82780a8) at sessions.c:1012
#7 0x4011579e in pth_ctrl () from /usr/lib/libpth.so.14
#8 0x40183914 in makecontext () from /lib/libc.so.6
#9 0x40115c0a in pth_spawn () from /usr/lib/libpth.so.14
#10 0x4011579e in pth_ctrl () from /usr/lib/libpth.so.14
#11 0x40183914 in makecontext () from /lib/libc.so.6
#12 0x401172d9 in pth_wait () from /usr/lib/libpth.so.14
#13 0x40119825 in pth_sleep () from /usr/lib/libpth.so.14
#14 0x08055d67 in main ()
#15 0x401546cf in __libc_start_main () from /lib/libc.so.6
(gdb)
This was with version "stable-2002.03.15". Ooh, I see the problem :
buddy = xhash_get(s->buddies, at_normalize(userinfo->sn));
//how long since buddy sent an im?
idle = ((unsigned int)time(NULL) - (unsigned int)buddy->lastactivity);
You never check to see if 'buddy' is NULL or not.
Attached is the patch I'm now trying. I imagine it would be helpful
to see the actual packets the server sent. Do you have any
recommendations on how to get a log of those?
~~~~~~~~~~~~
-D
--
If we claim we have not sinned, we make Him out to be a liar and His
Word has no place in our lives.
I John 1:10
-------------- next part --------------
--- messages.c.orig Sun Mar 31 14:19:20 2002
+++ messages.c Sun Mar 31 14:18:10 2002
@@ -30,6 +30,12 @@
buddy = xhash_get(s->buddies, at_normalize(userinfo->sn));
+ // DSH
+ if ( buddy == NULL )
+ {
+ goto bug_out ;
+ }
+
//how long since buddy sent an im?
idle = ((unsigned int)time(NULL) - (unsigned int)buddy->lastactivity);
@@ -187,6 +193,8 @@
}
+// DSH
+bug_out:
// free!
free(utf8_str);
free(msg_plain);
More information about the JDev
mailing list