lmtpd dumping core

Nikos Voutsinas nvoutsin at noc.uoa.gr
Tue Oct 18 13:03:42 EDT 2005


Rob McMahon wrote:

> debugging core file of lmtpd (32-bit) from narcissus
> file: /usr/local/cyrus/bin/lmtpd
> initial argv: lmtpd
> threading model: multi-threaded
> status: process terminated by SIGSEGV (Segmentation Fault)
>  >
> 
> In imap/mboxlist.c, we find the code:
> 
>     if (auth_userid == NULL) {
>          /*
>           * Couldn't get cannon userid
>           */
>           syslog(LOG_ERR,
>                 "Could not get cannon userid for user %s", auth_userid);
> 
> Oops.  If auth_userid is NULL, try to log it.  One suspects that was 
> supposed to be `userid' being logged.
> 
> Comments ?
> 


Ouups. This is obviously wrong. I suspect that it was propagated from
cyrus-2.1.x to cyrus-2.2.x series a bit hasty since the corresponding
code segment in 2.1 is written as following:

+        auth_userid = auth_canonuser(auth_state);
+        if (auth_userid == NULL) {
+            /*
+             * Couldn't get cannon userid
+             */
+             syslog(LOG_ERR,
+                    "Could not get cannon userid for user %s", userid);
+             return IMAP_PARTITION_UNKNOWN;
+        }

As far as the reason why the auth_userid is NULL, this is due to
auth_canonuser() and the "&" character, which i would strongly advise
you to avoid.

Thank you for your bug report. A new version of the autocreate patch
will be released.

Nikos Voutsinas




More information about the Info-cyrus mailing list