Crashes in lmtpproxyd, and a patch

Giles Malet gdmalet at uwaterloo.ca
Fri Nov 27 14:05:33 EST 2015


Looking further, I found core files on the mupdate master, from mupdate, 
and suspect these are correlated with the downstream crashes.

In this case the crash is here:

#0  0x00000036ed647e2c in vfprintf () from /lib64/libc.so.6
#1  0x00000036ed6e4f10 in __vsyslog_chk () from /lib64/libc.so.6
#2  0x00000036ed6e5140 in syslog () from /lib64/libc.so.6
#3  0x000000000040d703 in mupdate_connect (server=0xe45e70 
"mupdate-internal",
     port=0x0, handle=0x7ff4e88a5dc8, cbs=0x7ff4e0001d10)
     at mupdate-client.c:133
#4  0x000000000040d437 in mupdate_client_start (rock=0x0)
     at mupdate-slave.c:309
#5  0x00000036eda07a51 in start_thread () from /lib64/libpthread.so.0
#6  0x00000036ed6e89ad in clone () from /lib64/libc.so.6

Line 133 in mupdate-client.c matches this:

    h->conn = backend_connect(NULL, server, &mupdate_protocol,
                               "", cbs, &status);

Again, conn is null at this point (see below). I suspect these crashes 
cause those in lmtpd.

I'm not sure what else to offer here ... a patch not to dereference conn 
if it's null?


(gdb) print *h
$2 = {conn = 0x0, tagn = 0, tag = {s = 0x0, len = 0, alloc = 0, flags = 0},
   cmd = {s = 0x0, len = 0, alloc = 0, flags = 0}, arg1 = {s = 0x0, len 
= 0,
     alloc = 0, flags = 0}, arg2 = {s = 0x0, len = 0, alloc = 0, flags = 
0},
   arg3 = {s = 0x0, len = 0, alloc = 0, flags = 0},
   mailbox_buf = '\000' <repeats 1023 times>,
   server_buf = '\000' <repeats 1023 times>, acl_buf = 0x0, acl_buf_len 
= 0,
   mailboxdata_buf = {mailbox = 0x0, server = 0x0, acl = 0x0, t = ACTIVE},
   saslcompleted = 0}

Thanks,
g



More information about the Cyrus-devel mailing list