head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.44 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.42 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.40 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.38 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.36 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.34 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.32 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.30 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.28 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.26 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.24 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.22 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.20 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.18 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.16 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.14 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.12 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.10 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.8 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.6 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.4 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.2 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.1.0.10 pkgsrc-2004Q4-base:1.1 pkgsrc-2004Q3:1.1.0.8 pkgsrc-2004Q3-base:1.1 pkgsrc-2004Q2:1.1.0.6 pkgsrc-2004Q2-base:1.1 pkgsrc-2004Q1:1.1.0.4 pkgsrc-2004Q1-base:1.1 pkgsrc-2003Q4:1.1.0.2 pkgsrc-2003Q4-base:1.1; locks; strict; comment @# @; 1.2 date 2005.01.10.18.46.19; author adrianp; state dead; branches; next 1.1; 1.1 date 2003.09.18.17.10.37; author taca; state Exp; branches; next ; desc @@ 1.2 log @Removal of sendmail 8.11.x branch from pkgsrc. We already have the 8.12.x and 8.13.x branches in pkgsrc. @ text @$NetBSD: patch-ah,v 1.1 2003/09/18 17:10:37 taca Exp $ --- sendmail/parseaddr.c.orig 2003-09-19 00:49:40.000000000 +0900 +++ sendmail/parseaddr.c @@@@ -645,7 +645,7 @@@@ int masklen; } #endif -#define NOCHAR -1 /* signal nothing in lookahead token */ +#define NOCHAR (-1) /* signal nothing in lookahead token */ char ** prescan(addr, delim, pvpbuf, pvpbsize, delimptr, toktab) @@@@ -731,22 +731,31 @@@@ prescan(addr, delim, pvpbuf, pvpbsize, d /* see if there is room */ if (q >= &pvpbuf[pvpbsize - 5]) { + addrtoolong: usrerr("553 5.1.1 Address too long"); if (strlen(addr) > (SIZE_T) MAXNAME) addr[MAXNAME] = '\0'; returnnull: if (delimptr != NULL) + { + if (p > addr) + --p; *delimptr = p; + } CurEnv->e_to = saveto; return NULL; } /* squirrel it away */ +#if !ALLOW_255 + if ((char) c == (char) -1 && !tTd(82, 101)) + c &= 0x7f; +#endif /* !ALLOW_255 */ *q++ = c; } /* read a new input character */ - c = *p++; + c = (*p++) & 0x00ff; if (c == '\0') { /* diagnose and patch up bad syntax */ @@@@ -801,6 +810,9 @@@@ prescan(addr, delim, pvpbuf, pvpbsize, d } else if (c != '!' || state == QST) { + /* see if there is room */ + if (q >= &pvpbuf[pvpbsize - 5]) + goto addrtoolong; *q++ = '\\'; continue; } @@@@ -885,6 +897,9 @@@@ prescan(addr, delim, pvpbuf, pvpbsize, d /* new token */ if (tok != q) { + /* see if there is room */ + if (q >= &pvpbuf[pvpbsize - 5]) + goto addrtoolong; *q++ = '\0'; if (tTd(22, 36)) { @ 1.1 log @- Add patch from NetBSD 1.6 branch's changes for parseaddr.c 1.8.2.1-1.8.2.3. - Also bump sendmail version information itself. - bump package revision. BUGS Setting USE_WIDEPATCH=NO breaks the package. @ text @d1 1 a1 1 $NetBSD$ @