Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Jul 2002 22:36:49 +0200 (CEST)
From:      Cyrille Lefevre <cyrille.lefevre@laposte.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   bin/40314: mail is unable to parse From line w/o email address
Message-ID:  <200207072036.g67KancY080316@gits.gits.dyndns.org>

next in thread | raw e-mail | index | archive | help

>Number:         40314
>Category:       bin
>Synopsis:       mail is unable to parse From line w/o email address
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 07 13:40:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Cyrille Lefevre
>Release:        FreeBSD 4.6-STABLE i386
>Organization:
ACME
>Environment:
System: FreeBSD gits 4.6-STABLE FreeBSD 4.6-STABLE #15: Sun Jun 23 06:31:23 CEST 2002 root@gits:/disk2/freebsd/src/sys/compile/CUSTOM i386

>Description:
	mail don't display messages w/ a badly formatted From line such as :
	From   Sun Jul  7 21:55:25 2002
	     ^ no email address
	the following patch try to parse the email address as a valid date
	before the decide that's really an email address.
>How-To-Repeat:
	cat << EOF > test.mbox
From   Sun Jul  7 21:55:25 2002
From: root@gits.dyndns.org
Date: Sun, 07 Jul 2002 21:55:24 +0200 (CEST)
To: test@gits.dyndns.org
Precedence: bulk

wrong body

EOF
	mail -f test.mbox
Mail version 8.1 6/6/93.  Type ? for help.
"test.mbox": 0 messages
& q
	# oops!
	cat << EOF >> test.mbox
From root@gits.dyndns.org Sun Jul  7 21:55:25 2002
From: root@gits.dyndns.org
Subject: right message
Date: Sun, 07 Jul 2002 21:55:24 +0200 (CEST)
To: test@gits.dyndns.org
Precedence: bulk

right body

EOF
	mail -f test.mbox
"test.mbox": 1 message 1 unread
>Fix:
Index: head.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/mail/head.c,v
retrieving revision 1.1.1.1.14.3
diff -u -r1.1.1.1.14.3 head.c
--- head.c	15 Mar 2002 19:46:31 -0000	1.1.1.1.14.3
+++ head.c	7 Jul 2002 20:20:30 -0000
@@ -113,12 +113,19 @@
 	 * Skip over "From" first.
 	 */
 	cp = nextword(cp, word);
-	cp = nextword(cp, word);
-	if (*word != '\0')
-		hl->l_from = copyin(word, &sp);
-	if (cp != NULL && cp[0] == 't' && cp[1] == 't' && cp[2] == 'y') {
+	/*
+	 * Illegal empty address.
+	 */
+	if (isdate(cp))
+		hl->l_from = copyin("nobody", &sp);
+	else {
 		cp = nextword(cp, word);
-		hl->l_tty = copyin(word, &sp);
+		if (*word != '\0')
+			hl->l_from = copyin(word, &sp);
+		if (cp != NULL && cp[0] == 't' && cp[1] == 't' && cp[2] == 'y') {
+			cp = nextword(cp, word);
+			hl->l_tty = copyin(word, &sp);
+		}
 	}
 	if (cp != NULL)
 		hl->l_date = copyin(cp, &sp);
>Release-Note:
>Audit-Trail:
>Unformatted:
1 root@gits.dyndns.org  Sun Jul  7 21:55  10/211   "right message"
& d1
& q
"test.mbox" removed
	# oops!

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207072036.g67KancY080316>