per@erix.ericsson.se (Per Hedeland) (04/04/89)
Version: sendmail 5.61 + IDA 1.2.8
When using the 'p' flag for the UUCP mailer in order to get the value of $k
(uucp name) prepended to the envelope sender address, this won't be done if $k
happens to be an initial substring of the existing sender address, e.g. if your
uucp name is 'erix' and the sender address is 'erix-u.ericsson.se!user'. (BTW
this very same bug was once present in the news software, fixed back at 2.10.2
or somesuch, I believe...:-)
--Per Hedeland
per@erix.ericsson.se or ...{uunet,mcvax}!erix.ericsson.se!per
Fix:
*** /usr/src/usr.lib/sendmail.5.61.ida/src/deliver.c.orig Thu Jan 26 16:50:57 1989
--- /usr/src/usr.lib/sendmail.5.61.ida/src/deliver.c Tue Apr 4 12:07:58 1989
***************
*** 1166,1174 ****
/* construct path through us if needed */
if (bitnset(M_FROMPATH, m->m_flags)) {
char myname[MAXLINE];
expand("\001k", myname, &myname[sizeof myname - 1], CurEnv);
! if (index(oldg, '!') == NULL
|| strncmp(oldg, myname, strlen(myname)) != 0) {
sprintf(newg, "%s!%s", myname, oldg);
define('g', newg, CurEnv);
--- 1166,1176 ----
/* construct path through us if needed */
if (bitnset(M_FROMPATH, m->m_flags)) {
char myname[MAXLINE];
+ char *bang;
expand("\001k", myname, &myname[sizeof myname - 1], CurEnv);
! if ((bang = index(oldg, '!')) == NULL
! || strlen(myname) != bang - oldg
|| strncmp(oldg, myname, strlen(myname)) != 0) {
sprintf(newg, "%s!%s", myname, oldg);
define('g', newg, CurEnv);