IMAP v2.4.2 imap process crashes if imapd.conf doesn't define servername or syslog_prefix

Bron Gondwana brong at fastmail.fm
Wed Oct 27 16:22:10 EDT 2010


On Wed, Oct 27, 2010 at 11:09:29AM -0400, Rosenbaum, Larry M. wrote:
> http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3292
> 
> I installed and started Cyrus IMAP v2.4.2 on Solaris 9 Sparc.  Every time I
> tried to connect, the connection would fail and the log would show (for
> example) "process 12723 exited, signaled to death by 11".  If I added a
> definition for "servername" to the imapd.conf file, it would run OK and I was
> able to connect.  The code causing the problem is in the function
> session_new_id() in the file imap/global.c:
> 
>     base = config_getstring(IMAPOPT_SYSLOG_PREFIX);
>     if (!base) base = config_getstring(IMAPOPT_SERVERNAME);
>     snprintf(session_id_buf, MAX_SESSIONID_SIZE, "%.128s-%d-%d-%d",
>              base, getpid(), session_id_time, session_id_count);
> 
> 
> servername and syslog_prefix are documented as optional, but if neither one is
> explicitly defined in imapd.conf, then the character pointer "base" is zero,
> which causes a SEGV in snprintf().

Definitely worth filing a bug for this one!

Bron.


More information about the Info-cyrus mailing list