In the Linux kernel, the following vulnerability has been resolved:
idpf: check error for register_netdev() on init
Current init logic ignores the error code from registernetdev(), which will cause WARNON() on attempt to unregister it, if there was one, and there is no info for the user that the creation of the netdev failed.
WARNING: CPU: 89 PID: 6902 at net/core/dev.c:11512 unregisternetdevicemanynotify+0x211/0x1a10 ... [ 3707.563641] unregisternetdev+0x1c/0x30 [ 3707.563656] idpfvportdealloc+0x5cf/0xce0 [idpf] [ 3707.563684] idpfdeinittask+0xef/0x160 [idpf] [ 3707.563712] idpfvccoredeinit+0x84/0x320 [idpf] [ 3707.563739] idpfremove+0xbf/0x780 [idpf] [ 3707.563769] pcideviceremove+0xab/0x1e0 [ 3707.563786] devicereleasedriverinternal+0x371/0x530 [ 3707.563803] driverdetach+0xbf/0x180 [ 3707.563816] busremovedriver+0x11b/0x2a0 [ 3707.563829] pciunregisterdriver+0x2a/0x250
Introduce an error check and log the vport number and error code. On removal make sure to check VPORTREGNETDEV flag prior to calling unregister and free on the netdev.
Add local variables for idx, vport_config and netdev for readability.