Ops, still has the problem, check:

[New Thread 0xaecffb90 (LWP 19496)]
[New Thread 0xae4ffb90 (LWP 19497)]
*** glibc detected *** /usr/local/sbin/dbmail-imapd: free(): invalid
pointer: 0x0805cca0 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7c0cac5]
/lib/libc.so.6(cfree+0x9c)[0xb7c0e37c]
/usr/lib/libglib-2.0.so.0(g_free+0x36)[0xb7e71796]
/usr/local/sbin/dbmail-imapd(imap_idle_loop+0x180)[0x8054090]
/usr/local/sbin/dbmail-imapd(_ic_idle_enter+0xc7)[0x8054187]
/usr/local/lib/dbmail/libdbmail.so.0[0xb7d2085c]
/usr/lib/libglib-2.0.so.0[0xb7e94b96]
/usr/lib/libglib-2.0.so.0[0xb7e9354f]
/lib/libpthread.so.0[0xb7b8ff20]
/lib/libc.so.6(clone+0x5e)[0xb7c6e3de]
======= Memory map: ========
08048000-08062000 r-xp 00000000 09:00 14684
/usr/local/sbin/dbmail-imapd
08062000-08063000 rw-p 00019000 09:00 14684
/usr/local/sbin/dbmail-imapd
08063000-08db4000 rw-p 00000000 00:00 0          [heap]


(gdb) f 5
#5  0xb7e71796 in g_free () from /usr/lib/libglib-2.0.so.0
(gdb) f 6
#6  0x08054090 in imap_idle_loop (self=0x0, timeout=30) at
imapcommands.c:1089
1089                                    g_free(D->data);
(gdb) f 7
#7  0x08054187 in _ic_idle_enter (D=0x8d127c0) at imapcommands.c:1133
1133            if ((t = imap_idle_loop(self, idle_timeout))) {
(gdb) f 8
#8  0xb7d2085c in dm_thread_dispatch (data=0x8d127c0, user_data=0x0)
    at server.c:152
152             D->cb_enter(D);
(gdb) f 9
#9  0xb7e94b96 in ?? () from /usr/lib/libglib-2.0.so.0
(gdb) f 10




I added the IF you suggested, and and on line 1089 of imapcommands.c I have:
--
                                g_free(D->data);
--


Part of the code before and after:



1084-                        dm_thread_data *D = (gpointer)data;
1085-                        message = (char *)D->data;
1086-                        if (strlen(message) > 4 &&
strncasecmp(message,"DONE",4)
1087- ==0) {
1088-                                if (D != NULL) {
1089-                                g_free(D->data);
1090-                                g_free(D);
1091-}
1092-
1093-                                return 0;
1094-                        } else if (strlen(message) > 0) {


_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev

Reply via email to