git: kernel - Fix multiple issues with if_tap and if_tun cloning

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Aug 12 13:54:34 PDT 2020


commit 98a21dda18d58e69475cb708cac723e459407168
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Aug 12 13:47:43 2020 -0700

    kernel - Fix multiple issues with if_tap and if_tun cloning
    
    * tap and tun were being auto-destroyed when manually created via
      ifconfig blah create, and not being auto-destroyed when auto-created
      via open /dev/tap or open /dev/tun.  Reverse the flag so it works
      properly.
    
    * The bitmap for the ifconfig based cloner and the bitmap maintained
      internally by if_tap and if_tun could get out of sync with each
      other due to if_clone_free_unit(ifp, ...) being issued after
      the ifc_destroy() (the ifp is garbage at that point).
    
    * Remove a KASSERT() that can be triggered trivially from usermode
      (as root) in the interface cloning path.
    
    Reported-by: zrj

Summary of changes:
 sys/net/if_clone.c   | 43 +++++++++++++++++++++++++++++--------------
 sys/net/tap/if_tap.c |  4 ++--
 sys/net/tun/if_tun.c |  4 ++--
 3 files changed, 33 insertions(+), 18 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/98a21dda18d58e69475cb708cac723e459407168


-- 
DragonFly BSD source repository



More information about the Commits mailing list