/bin/mail incorrectly deletes the "From: " header.
Neil Rickert
rickert at mp.cs.niu.edu
Fri Jun 21 00:37:28 AEST 1991
PROBLEM:
/bin/mail will, under certain circumstances, delete an existing
"From:" header.
REPEAT BY:
/bin/mail -r $USER -d $USER <<EOF
From: $USER (Just testing)
To: $USER
Test
EOF
Observe that in the mail delivered to your mailbox, the "From:"
header has been discarded.
ANALYSIS:
/bin/mail should be testing for the 5 character string "From " instead
of the 4 character string "From".
IMPLICATIONS:
Under certain circumstances, the "From:" header is discarded and
regenerated by sendmail. Depending on the order of the header
definition, this may result in "From:" preceding the "Received:"
headers. If it is the first header, /bin/mail may delete it.
WORKAROUND:
Make sure your local mailer definition in 'sendmail.cf' includes the
'R' flag to generate a "Received:" header. Send yourself mail with the
command: echo Testing | /usr/lib/sendmail $USER
Inspect the mail, and make sure that the "Received:" header precedes the
"From:" header. If not, rearrange the header definitions in sendmail.cf
appropriately.
PATCH:
*** binmail.c.orig Fri Nov 30 14:22:31 1990
--- binmail.c Thu Jun 20 06:22:45 1991
***************
*** 481,487 ****
usage();
truename = argv[1];
fgets(line, LSIZE, stdin);
! if (strncmp("From", line, 4) == 0)
line[0] = '\0';
argv++;
argc--;
--- 481,487 ----
usage();
truename = argv[1];
fgets(line, LSIZE, stdin);
! if (strncmp(from, line, 5) == 0)
line[0] = '\0';
argv++;
argc--;
--
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
Neil W. Rickert, Computer Science <rickert at cs.niu.edu>
Northern Illinois Univ.
DeKalb, IL 60115 +1-815-753-6940
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list