kern/63772: tap device / exclusive open problem

Stefan `Sec` Zehl sec at 42.org
Fri Mar 5 10:18:54 PST 2004


On Thu, Mar 04, 2004 at 11:20 -0800, FreeBSD-gnats-submit at FreeBSD.org wrote:
> Thank you very much for your problem report.
> It has the internal identification `kern/63772'.

I have checked the if_tap.c in the current and stable branches, and was
thus able to come up with an easy fix:

--- if_tap.c    Tue Feb 24 05:35:44 2004
+++ if_tap.c.neu        Fri Mar  5 19:09:12 2004
@@ -323,6 +323,9 @@
        KASSERT(!(tp->tap_flags & TAP_OPEN), 
                ("%s flags is out of sync", tp->tap_if.if_xname));
 
+       if (tp->tap_flags & TAP_OPEN)
+               return (EBUSY);
+
        bcopy(tp->arpcom.ac_enaddr, tp->ether_addr, sizeof(tp->ether_addr));
 
        tp->tap_pid = td->td_proc->p_pid;


After this simple change, openvpn works with multiple tunnels again.

I hope this can be committed.

CU,
    Sec
-- 
"Caution, you have *no chance* of operating this device successfully
unless you have read the instruction manual."
- from a card covering the screen of an Amstrad phone


More information about the freebsd-bugs mailing list