pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/44275: cyrus-imapd24 unstable on -current



>Number:         44275
>Category:       pkg
>Synopsis:       cyrus-imapd24 unstable on -current
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Dec 24 09:40:00 +0000 2010
>Originator:     Shin'ichiro TAYA
>Release:        NetBSD 5.99.41
>Organization:

--
Shin'ichiro TAYA <taya%ba2.so-net.ne.jp@localhost>
>Environment:
System: NetBSD xxx 5.99.41 NetBSD 5.99.41 (GENERIC) #2: Thu Dec 23 12:54:24 JST 
2010 
taya@xxx:/export/NetBSD/NetBSD-current/OBJ.i386/export/NetBSD/NetBSD-current/src/sys/arch/i386/compile/GENERIC
 i386
Architecture: i386
Machine: i386
>Description:
        cyrus-imapd24 and related command is unstable on -current and suddenly 
quits.

>How-To-Repeat:
        most simple way to reproduce is to run /usr/pkg/cyrus/bin/reconstruct.

        root@xxx# /usr/pkg/cyrus/bin/reconstruct 
        user.taya uid 845258 found - adding
        Segmentation fault
        root@xxx# 

>Fix:
        Inspite of the size of time_t is 8 bytes, cyrus code assumes it's 
        4 bytes.
        "reconstruct" crushes at following point..

--
mailbox.c:1892
   snprintf(buf, 4096, "%u " MODSEQ_FMT " %lu (%u) %lu %s", 
            record->uid, record->modseq, record->last_updated,
            flagcrc,
            record->internaldate, 
            message_guid_encode(&record->guid));
--

        record->last_updated & record-internaldate is time_t 
        but format string is "%lu" thus last string argument is not passed 
        correctly and snprintf() treats invalid pointer as string and crushes.
        There may be more places to fix.



Home | Main Index | Thread Index | Old Index