diff --git a/ChangeLog b/ChangeLog index 93a96bb7b9..ae0eb19217 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-03-07 Tambet Ingo + + * src/nm-device-802-3-ethernet.c (nm_device_802_3_ethernet_get_speed): Handle + the case correctly where driver is trying to send -1 for the speed, which gets + casted to u16 and thus is always > 0. + 2008-03-07 Dan Williams * src/nm-hal-manager.c diff --git a/src/nm-device-802-3-ethernet.c b/src/nm-device-802-3-ethernet.c index b78c130520..481395b672 100644 --- a/src/nm-device-802-3-ethernet.c +++ b/src/nm-device-802-3-ethernet.c @@ -578,7 +578,8 @@ nm_device_802_3_ethernet_get_speed (NMDevice8023Ethernet *self) ifr.ifr_data = (char *) &edata; if (ioctl (nm_dev_sock_get_fd (sk), SIOCETHTOOL, &ifr) == -1) goto out; - speed = edata.speed > 0 ? (guint32) edata.speed : 0; + + speed = edata.speed != G_MAXUINT16 ? edata.speed : 0; out: nm_dev_sock_close (sk);