summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/libmilter
diff options
context:
space:
mode:
authorgshapiro <gshapiro@FreeBSD.org>2002-08-28 17:57:52 +0000
committergshapiro <gshapiro@FreeBSD.org>2002-08-28 17:57:52 +0000
commit39e311b2e17a53f7ed02fcbe3820ca77b65486d5 (patch)
tree917921b3db147e850cc818686dc5ee3127c9842b /contrib/sendmail/libmilter
parentfc4e7b69e3f764d3a1d9157868bc6965ef1db7d6 (diff)
downloadFreeBSD-src-39e311b2e17a53f7ed02fcbe3820ca77b65486d5.zip
FreeBSD-src-39e311b2e17a53f7ed02fcbe3820ca77b65486d5.tar.gz
Import sendmail 8.12.6
Diffstat (limited to 'contrib/sendmail/libmilter')
-rw-r--r--contrib/sendmail/libmilter/comm.c30
-rw-r--r--contrib/sendmail/libmilter/engine.c9
-rw-r--r--contrib/sendmail/libmilter/listener.c19
3 files changed, 42 insertions, 16 deletions
diff --git a/contrib/sendmail/libmilter/comm.c b/contrib/sendmail/libmilter/comm.c
index 0bf7e5c..73d51b1 100644
--- a/contrib/sendmail/libmilter/comm.c
+++ b/contrib/sendmail/libmilter/comm.c
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
-SM_RCSID("@(#)$Id: comm.c,v 8.54 2002/03/06 16:03:26 ca Exp $")
+SM_RCSID("@(#)$Id: comm.c,v 8.54.2.2 2002/08/16 17:09:13 ca Exp $")
#include "libmilter.h"
#include <sm/errstring.h>
@@ -63,10 +63,19 @@ mi_rd_cmd(sd, timeout, cmd, rlen, name)
return NULL;
}
- FD_Z;
i = 0;
- while ((ret = select(sd + 1, &readset, NULL, &excset, timeout)) >= 1)
+ for (;;)
{
+ FD_Z;
+ ret = select(sd + 1, &readset, NULL, &excset, timeout);
+ if (ret == 0)
+ break;
+ else if (ret < 0)
+ {
+ if (errno == EINTR)
+ continue;
+ break;
+ }
if (FD_ISSET(sd, &excset))
{
*cmd = SMFIC_SELECT;
@@ -90,7 +99,6 @@ mi_rd_cmd(sd, timeout, cmd, rlen, name)
if (len >= (ssize_t) sizeof data - i)
break;
i += len;
- FD_Z;
}
if (ret == 0)
{
@@ -129,9 +137,18 @@ mi_rd_cmd(sd, timeout, cmd, rlen, name)
}
i = 0;
- FD_Z;
- while ((ret = select(sd + 1, &readset, NULL, &excset, timeout)) == 1)
+ for (;;)
{
+ FD_Z;
+ ret = select(sd + 1, &readset, NULL, &excset, timeout);
+ if (ret == 0)
+ break;
+ else if (ret < 0)
+ {
+ if (errno == EINTR)
+ continue;
+ break;
+ }
if (FD_ISSET(sd, &excset))
{
*cmd = SMFIC_SELECT;
@@ -169,7 +186,6 @@ mi_rd_cmd(sd, timeout, cmd, rlen, name)
return buf;
}
i += len;
- FD_Z;
}
save_errno = errno;
diff --git a/contrib/sendmail/libmilter/engine.c b/contrib/sendmail/libmilter/engine.c
index 7414072..221a99f 100644
--- a/contrib/sendmail/libmilter/engine.c
+++ b/contrib/sendmail/libmilter/engine.c
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
-SM_RCSID("@(#)$Id: engine.c,v 8.109 2002/03/13 17:18:44 gshapiro Exp $")
+SM_RCSID("@(#)$Id: engine.c,v 8.109.2.1 2002/07/29 16:40:47 ca Exp $")
#include "libmilter.h"
@@ -308,8 +308,11 @@ mi_engine(ctx)
curstate = ST_HELO;
if (!trans_ok(curstate, newstate))
{
- free(buf);
- buf = NULL;
+ if (buf != NULL)
+ {
+ free(buf);
+ buf = NULL;
+ }
continue;
}
}
diff --git a/contrib/sendmail/libmilter/listener.c b/contrib/sendmail/libmilter/listener.c
index 03d8acd..e809a7b 100644
--- a/contrib/sendmail/libmilter/listener.c
+++ b/contrib/sendmail/libmilter/listener.c
@@ -9,7 +9,7 @@
*/
#include <sm/gen.h>
-SM_RCSID("@(#)$Id: listener.c,v 8.85 2002/05/28 18:17:41 gshapiro Exp $")
+SM_RCSID("@(#)$Id: listener.c,v 8.85.2.1 2002/08/09 22:13:36 gshapiro Exp $")
/*
** listener.c -- threaded network listener
@@ -621,12 +621,19 @@ mi_closener()
st.tv_sec = (s); \
st.tv_usec = 0; \
if (st.tv_sec > 0) \
- rs = select(0, NULL, NULL, NULL, &st); \
- if (rs != 0) \
{ \
- smi_log(SMI_LOG_ERR, \
- "MI_SLEEP(): select() returned non-zero result %d, errno = %d", \
- rs, errno); \
+ for (;;) \
+ { \
+ rs = select(0, NULL, NULL, NULL, &st); \
+ if (rs < 0 && errno == EINTR) \
+ continue; \
+ if (rs != 0) \
+ { \
+ smi_log(SMI_LOG_ERR, \
+ "MI_SLEEP(): select() returned non-zero result %d, errno = %d", \
+ rs, errno); \
+ } \
+ } \
} \
}
#else /* BROKEN_PTHREAD_SLEEP */
OpenPOWER on IntegriCloud