Mangled header problem with sendmail.5.61.IDA
Neil Rickert
rickert at mp.cs.niu.edu
Thu Apr 25 07:26:05 AEST 1991
In article <1991Apr24.205539.11879 at mp.cs.niu.edu> rickert at mp.cs.niu.edu (Neil Rickert) writes:
>In article <9104241220.AA01017 at gruffle.comlab.prg.ox.ac.uk> Malcolm.Harper at prg.oxford.ac.uk writes:
>>but lines of the form
>> From: Malcolm.Harper at uk.ac.oxford.prg (Malcolm Harper \(Postmaster\))
>>get mangled into
>> From: Malcolm.Harper at prg(.oxford.ac.uk (Malcolm Harper \(Postmaster\))
>>and then fail with "Unbalanced '('".
> This seems to be a combination of a bug in the sendmail sources from
>Berkeley, and a possible bug in the 'sendmail.cf' you are using.
>
> I am compiling a possible fix to the source bug right now. I will post
>if it works out.
Here is the promised patch.
It compiles, and it passes my preliminary tests. I am now running the patched
version as my system 'sendmail'. If any problems turn up I will post a notice.
As you can see, the patch just changes an 'else if' into an 'if'
What was happening was that a backslash quoted character was handled first,
by setting a quote bit. Because of the 'else' it was never looked at again
and so missed the processing to handle the fact that it was in a parenthesized
comment. Removing the 'else' should eliminate the problem.
*** /tmp/RCSAAA029384 Wed Apr 24 16:18:02 1991
--- parseaddr.c Wed Apr 24 16:04:46 1991
***************
*** 389,395 ****
bslashmode = TRUE;
c = NOCHAR;
}
! else if (state == QST)
{
/* do nothing, just avoid next clauses */
}
--- 389,395 ----
bslashmode = TRUE;
c = NOCHAR;
}
! /* else */ if (state == QST)
{
/* do nothing, just avoid next clauses */
}
--
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
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