summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/src/mci.c
diff options
context:
space:
mode:
authorgshapiro <gshapiro@FreeBSD.org>2003-09-19 23:11:30 +0000
committergshapiro <gshapiro@FreeBSD.org>2003-09-19 23:11:30 +0000
commit96b960fca637a0765d566591885b7d42576e723f (patch)
treee6205d213aedfefacf00b4211611f436bae5e680 /contrib/sendmail/src/mci.c
parentac5ff30ae19ff6f7473f23c0d36d94301124b150 (diff)
downloadFreeBSD-src-96b960fca637a0765d566591885b7d42576e723f.zip
FreeBSD-src-96b960fca637a0765d566591885b7d42576e723f.tar.gz
Import sendmail 8.12.10
Diffstat (limited to 'contrib/sendmail/src/mci.c')
-rw-r--r--contrib/sendmail/src/mci.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/contrib/sendmail/src/mci.c b/contrib/sendmail/src/mci.c
index 033387b..b8c0de2 100644
--- a/contrib/sendmail/src/mci.c
+++ b/contrib/sendmail/src/mci.c
@@ -13,7 +13,7 @@
#include <sendmail.h>
-SM_RCSID("@(#)$Id: mci.c,v 8.205.2.3 2003/01/07 03:56:19 ca Exp $")
+SM_RCSID("@(#)$Id: mci.c,v 8.205.2.4 2003/03/31 17:35:27 ca Exp $")
#if NETINET || NETINET6
# include <arpa/inet.h>
@@ -548,11 +548,21 @@ mci_dump(mci, logit)
}
(void) sm_snprintf(p, SPACELEFT(buf, p), "flags=%lx", mci->mci_flags);
p += strlen(p);
+
+ /*
+ ** The following check is just for paranoia. It protects the
+ ** assignment in the if() clause. If there's not some minimum
+ ** amount of space we can stop right now. The check will not
+ ** trigger as long as sizeof(buf)=4000.
+ */
+
+ if (p >= buf + sizeof(buf) - 4)
+ goto printit;
if (mci->mci_flags != 0)
{
struct mcifbits *f;
- *p++ = '<';
+ *p++ = '<'; /* protected above */
for (f = MciFlags; f->mcif_bit != 0; f++)
{
if (!bitset(f->mcif_bit, mci->mci_flags))
@@ -1152,7 +1162,7 @@ mci_traverse_persistent(action, pathname)
if (hostptr != host)
*(hostptr++) = '.';
start = end;
- while (*(start - 1) != '/')
+ while (start > pathname && *(start - 1) != '/')
start--;
if (*end == '.')
@@ -1162,7 +1172,7 @@ mci_traverse_persistent(action, pathname)
*(hostptr++) = *scan;
end = start - 2;
- } while (*end == '.');
+ } while (end > pathname && *end == '.');
*hostptr = '\0';
@@ -1352,7 +1362,7 @@ mci_purge_persistent(pathname, hostname)
/*
** MCI_GENERATE_PERSISTENT_PATH -- generate path from hostname
**
-** Given `host', convert from a.b.c to $QueueDir/.hoststat/c./b./a,
+** Given `host', convert from a.b.c to $HostStatDir/c./b./a,
** putting the result into `path'. if `createflag' is set, intervening
** directories will be created as needed.
**
OpenPOWER on IntegriCloud