mirror of
https://github.com/ipxe/ipxe
synced 2025-12-09 10:50:28 +03:00
[netdevice] Return ENOENT for an unknown bus type
It is possible for the preloaded UNDI device to end up with no specified bus type, since it may not be recognised as either a PCI or an ISAPnP device. This will result in a bus type value of zero, which currently results in NULL being treated as a string pointer by netdev_fetch_bustype(). Fix by returning ENOENT if an unknown bus type is specified. Reported-by: Todd Stansell <todd@stansell.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -141,7 +141,8 @@ static int netdev_fetch_bustype ( struct net_device *netdev, void *data,
|
||||
assert ( desc->bus_type < ( sizeof ( bustypes ) /
|
||||
sizeof ( bustypes[0] ) ) );
|
||||
bustype = bustypes[desc->bus_type];
|
||||
assert ( bustype != NULL );
|
||||
if ( ! bustype )
|
||||
return -ENOENT;
|
||||
strncpy ( data, bustype, len );
|
||||
return strlen ( bustype );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user