NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/51597: Networking compat stuff is not fully modular



>Number:         51597
>Category:       kern
>Synopsis:       Network stuff if not fully modular
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Nov 03 21:35:00 +0000 2016
>Originator:     Paul Goyette
>Release:        NetBSD 7.99.36
>Organization:
+------------------+--------------------------+------------------------+
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:      |
| (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com   |
| Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org |
+------------------+--------------------------+------------------------+
>Environment:
	
	
System: NetBSD speedy.whooppee.com 7.99.36 NetBSD 7.99.36 (SPEEDY 2016-09-09 11:36:24) #0: Fri Sep 9 20:18:34 PHT 2016 paul%speedy.whooppee.com@localhost:/build/netbsd-local/obj/amd64/sys/arch/amd64/compile/SPEEDY amd64
Architecture: x86_64
Machine: amd64
>Description:
Some of the version-specific network changes are properly included in
the compat module - for example older ioctls are handled within
sys/compat/common/if_43.c

However, there are other parts of the network code that have not been
fully modularized.  For example, the sysctl() code in sys/net/rtsock.c,
even though it is properly conditionalized on the appropriate kernel
version using COMPAT_xx, will never be included in the separately-loaded
module.

This doesn't affect most people, since most people either use a standard
GENERIC kernel, or build their own with all modular code included as
built-in modules.  However, for anyone who relies on being able to load
the module code on an as-needed basis, the current code doesn't work.
	
>How-To-Repeat:
For one specific example, try to boot a NetBSD 7.99.42 kernel that does
NOT include COMPAT_70 in its configuration.  Once booted, load the
compat module using modload(8) and then try to execute an ifconfig(8)
image from 7.99.36.  ifconfig will fail to retrieve the interface list
because neither the kernel nor the module contains the OIFREQ sysctl(8)
code necessary.
	
>Fix:
Properly modularize the sys/net/rtsock.c code and include the version-
specific code in the compat module.
	

>Unformatted:
 	
 	


Home | Main Index | Thread Index | Old Index