aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--forward.c17
-rw-r--r--multi.c6
3 files changed, 18 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 476dcdf..edfc588 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,7 +5,12 @@ $Id$
2005.10.xx -- Version 2.1-beta5
+* Fix attempt of assertion at multi.c:1586 (note that
+ this precise line number will vary across different
+ versions of OpenVPN).
* More PKCS#11 additions/changes (Alon Bar-Lev).
+* Added ".PHONY: plugin" to Makefile.am to work around
+ "make dist" issue.
* Fixed double fork issue that occurs when --management-hold
is used.
* Moved TUN/TAP read/write log messages from --verb 8 to 6.
diff --git a/forward.c b/forward.c
index 9146aa1..ae2122f 100644
--- a/forward.c
+++ b/forward.c
@@ -610,9 +610,9 @@ read_incoming_link (struct context *c)
*/
int status;
- perf_push (PERF_READ_IN_LINK);
+ /*ASSERT (!c->c2.to_tun.len);*/
- ASSERT (!c->c2.to_tun.len);
+ perf_push (PERF_READ_IN_LINK);
c->c2.buf = c->c2.buffers->read_link_buf;
ASSERT (buf_init (&c->c2.buf, FRAME_HEADROOM_ADJ (&c->c2.frame, FRAME_HEADROOM_MARKER_READ_LINK)));
@@ -839,12 +839,12 @@ process_incoming_link (struct context *c)
void
read_incoming_tun (struct context *c)
{
- perf_push (PERF_READ_IN_TUN);
-
/*
* Setup for read() call on TUN/TAP device.
*/
- ASSERT (!c->c2.to_link.len);
+ /*ASSERT (!c->c2.to_link.len);*/
+
+ perf_push (PERF_READ_IN_TUN);
c->c2.buf = c->c2.buffers->read_tun_buf;
#ifdef TUN_PASS_BUFFER
@@ -1091,13 +1091,14 @@ process_outgoing_tun (struct context *c)
{
struct gc_arena gc = gc_new ();
- perf_push (PERF_PROC_OUT_TUN);
-
/*
* Set up for write() call to TUN/TAP
* device.
*/
- ASSERT (c->c2.to_tun.len > 0);
+ if (c->c2.to_tun.len <= 0)
+ return;
+
+ perf_push (PERF_PROC_OUT_TUN);
/*
* The --mssfix option requires
diff --git a/multi.c b/multi.c
index e3444df..45cdf5c 100644
--- a/multi.c
+++ b/multi.c
@@ -1728,7 +1728,8 @@ multi_process_incoming_link (struct multi_context *m, struct multi_instance *ins
struct multi_instance *mi;
bool ret = true;
- ASSERT (!m->pending);
+ if (m->pending)
+ return true;
if (!instance)
{
@@ -1882,7 +1883,8 @@ multi_process_incoming_tun (struct multi_context *m, const unsigned int mpp_flag
printf ("TUN -> TCP/UDP [%d]\n", BLEN (&m->top.c2.buf));
#endif
- ASSERT (!m->pending);
+ if (m->pending)
+ return true;
/*
* Route an incoming tun/tap packet to