Skip to content

Commit

Permalink
[netdevice] Return ENOENT for an unknown bus type
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
mcb30 committed Mar 29, 2016
1 parent ef1c4b1 commit 70509e6
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/net/netdev_settings.c
Expand Up @@ -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 );
}
Expand Down

0 comments on commit 70509e6

Please sign in to comment.