pkgsrc-Bugs archive

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

pkg/25130: elm hang on invalid inbox



>Number:         25130
>Category:       pkg
>Synopsis:       elm hangs on inboxes with certain invalid from lines
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Apr 10 18:57:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     David A. Holland <dholland%eecs.harvard.edu@localhost>
>Release:        NetBSD 1.6ZG
>Organization:
   - David A. Holland / dholland%eecs.harvard.edu@localhost
>Environment:
        
        
System: NetBSD alicante 1.6ZG NetBSD 1.6ZG (ALICANTE) #8: Wed Mar 17 18:47:39 
EST 2004 dholland@alicante:/usr/src/sys/arch/i386/compile/ALICANTE i386
Architecture: i386
Machine: i386
>Description:

        Elm 2.5pl5 hangs trying to open a mailbox where the character
        0x80 appears on the From: line.

        The problem is that one of the internal address-parsing
        routines truncates characters to 7-bit when tokenizing; the
        result is that when 0x80 comes along, it thinks it's at the
        end of the string but its caller disagrees and loops forever
        trying to continue tokenization.

>How-To-Repeat:

        Create a simple test message, save it to a file, edit the file
        so the From: line has the form "From: User Name ? <user@host>"
        (substitute the 0x80 for the ?), then do "elm -f file".

>Fix:

        The following patch is not a real fix (just a patch) and for
        various reasons I haven't actually tested it, but it ought to
        do the trick.

        (A somewhat more detailed version of this report, including
        the patch, has been sent to the upstream maintainer.)

--- elm2.5.5/lib/rfc822tlen.c.orig      2004-04-10 14:37:03.000000000 -0400
+++ elm2.5.5/lib/rfc822tlen.c   2004-04-10 14:38:15.000000000 -0400
@@ -180,10 +180,12 @@
                else
                        ; /* ERROR - unterminated domain literal */
                return (str-str0);
 
        case CH_EOS:
+               if (*str != '\0')
+                       return 1; /* 0x80 and not really end of string */
                return 0; /* ERROR - we should not see this */
 
        /* case CH_SPECIAL: */
        /* case CH_CTL: */
        default:

>Release-Note:
>Audit-Trail:
>Unformatted:
 
        Applies to elm 2.5pl5 and pkgsrc as of today (20040410).
 



Home | Main Index | Thread Index | Old Index