summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/src/recipient.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/src/recipient.c')
-rw-r--r--contrib/sendmail/src/recipient.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/contrib/sendmail/src/recipient.c b/contrib/sendmail/src/recipient.c
index 186c8b6..7452897 100644
--- a/contrib/sendmail/src/recipient.c
+++ b/contrib/sendmail/src/recipient.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: recipient.c,v 8.330.2.1 2002/08/27 20:21:02 gshapiro Exp $")
+SM_RCSID("@(#)$Id: recipient.c,v 8.330.2.2 2003/09/16 19:56:25 ca Exp $")
static void includetimeout __P((void));
static ADDRESS *self_reference __P((ADDRESS *));
@@ -169,6 +169,7 @@ sendtolist(list, ctladdr, sendq, aliaslevel, e)
SM_NONVOLATILE char delimiter; /* the address delimiter */
SM_NONVOLATILE int naddrs;
SM_NONVOLATILE int i;
+ char *endp;
char *oldto = e->e_to;
char *SM_NONVOLATILE bufp;
char buf[MAXNAME + 1];
@@ -206,6 +207,7 @@ sendtolist(list, ctladdr, sendq, aliaslevel, e)
}
else
bufp = sm_malloc_x(i);
+ endp = bufp + i;
SM_TRY
{
@@ -217,12 +219,16 @@ sendtolist(list, ctladdr, sendq, aliaslevel, e)
auto char *delimptr;
register ADDRESS *a;
+ SM_ASSERT(p < endp);
+
/* parse the address */
while ((isascii(*p) && isspace(*p)) || *p == ',')
p++;
+ SM_ASSERT(p < endp);
a = parseaddr(p, NULLADDR, RF_COPYALL, delimiter,
&delimptr, e, true);
p = delimptr;
+ SM_ASSERT(p < endp);
if (a == NULL)
continue;
a->q_next = al;
OpenPOWER on IntegriCloud