kern/95357: knlist of vmnet device is incorrectly destroyed by tapclose()

Stephen.Corteselli at xilinxpc.ho.lucent.com Stephen.Corteselli at xilinxpc.ho.lucent.com
Wed Apr 5 17:40:20 UTC 2006


>Number:         95357
>Category:       kern
>Synopsis:       knlist of vmnet device is incorrectly destroyed by tapclose()
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 05 17:40:17 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Stephen Corteselli
>Release:        FreeBSD 7.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD FreeBSD 7.0-CURRENT FreeBSD 7.0-CURRENT #0: Sun Apr  2 21:34:14 EDT 2006     sc at FreeBSD:/usr/sys/i386/compile/SC  i386
>Description:
In sys/net/if_tap.c 1.59 2006/03/16, tapclose() unconditionally destroys
the knlist initialized in tapopen().  However, the vmnet device uses the
knlist after tapclose is called.  This causes a panic when ifconfig'ing
vmnet1 with an IP address. (if_tap.ko is needed to run the VMware 2 port.)
>How-To-Repeat:
		kldload if_tap.ko
		echo -n >/dev/vmnet1
		ifconfig vmnet1 1.1.1.1
>Fix:
I'm not sure what the proper fix is, but I got ifconfig not to panic
the system by moving the call to knlist_destroy() (line 462 of
sys/net/if_tap.c) to just before line 449 (i.e., in the if statement
executed if this is NOT the vmnet device.
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list