diff options
Diffstat (limited to 'src/print_eth_info.c')
-rw-r--r-- | src/print_eth_info.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/print_eth_info.c b/src/print_eth_info.c index af5a757..06a1613 100644 --- a/src/print_eth_info.c +++ b/src/print_eth_info.c @@ -49,11 +49,13 @@ static int print_eth_speed(char *outwalk, const char *interface) { } else return sprintf(outwalk, "?"); #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) - char *ethspeed; + const char *ethspeed; struct ifmediareq ifm; (void)memset(&ifm, 0, sizeof(ifm)); (void)strncpy(ifm.ifm_name, interface, sizeof(ifm.ifm_name)); - int ret = ioctl(general_socket, SIOCGIFMEDIA, (caddr_t)&ifm); + if (ioctl(general_socket, SIOCGIFMEDIA, (caddr_t)&ifm) < 0) { + return sprintf(outwalk, "?"); + } /* Get the description of the media type, partially taken from * FreeBSD's ifconfig */ |