svn commit: r269127 - head/sys/dev/usb/wlan
Hans Petter Selasky
hselasky at FreeBSD.org
Sat Jul 26 16:06:02 UTC 2014
Author: hselasky
Date: Sat Jul 26 16:06:01 2014
New Revision: 269127
URL: http://svnweb.freebsd.org/changeset/base/269127
Log:
Fix for division by zero.
MFC after: 3 days
Modified:
head/sys/dev/usb/wlan/if_rum.c
head/sys/dev/usb/wlan/if_ural.c
head/sys/dev/usb/wlan/if_zyd.c
head/sys/dev/usb/wlan/if_zydreg.h
Modified: head/sys/dev/usb/wlan/if_rum.c
==============================================================================
--- head/sys/dev/usb/wlan/if_rum.c Sat Jul 26 15:46:41 2014 (r269126)
+++ head/sys/dev/usb/wlan/if_rum.c Sat Jul 26 16:06:01 2014 (r269127)
@@ -1035,6 +1035,8 @@ rum_setup_tx_desc(struct rum_softc *sc,
desc->plcp_length_hi = plcp_length >> 6;
desc->plcp_length_lo = plcp_length & 0x3f;
} else {
+ if (rate == 0)
+ rate = 2; /* avoid division by zero */
plcp_length = (16 * len + rate - 1) / rate;
if (rate == 22) {
remainder = (16 * len) % 22;
Modified: head/sys/dev/usb/wlan/if_ural.c
==============================================================================
--- head/sys/dev/usb/wlan/if_ural.c Sat Jul 26 15:46:41 2014 (r269126)
+++ head/sys/dev/usb/wlan/if_ural.c Sat Jul 26 16:06:01 2014 (r269127)
@@ -1038,6 +1038,8 @@ ural_setup_tx_desc(struct ural_softc *sc
desc->plcp_length_hi = plcp_length >> 6;
desc->plcp_length_lo = plcp_length & 0x3f;
} else {
+ if (rate == 0)
+ rate = 2; /* avoid division by zero */
plcp_length = (16 * len + rate - 1) / rate;
if (rate == 22) {
remainder = (16 * len) % 22;
Modified: head/sys/dev/usb/wlan/if_zyd.c
==============================================================================
--- head/sys/dev/usb/wlan/if_zyd.c Sat Jul 26 15:46:41 2014 (r269126)
+++ head/sys/dev/usb/wlan/if_zyd.c Sat Jul 26 16:06:01 2014 (r269127)
@@ -2480,7 +2480,7 @@ zyd_tx_start(struct zyd_softc *sc, struc
const struct ieee80211_txparam *tp;
struct ieee80211_key *k;
int rate, totlen;
- static uint8_t ratediv[] = ZYD_TX_RATEDIV;
+ static const uint8_t ratediv[] = ZYD_TX_RATEDIV;
uint8_t phy;
uint16_t pktlen;
uint32_t bits;
Modified: head/sys/dev/usb/wlan/if_zydreg.h
==============================================================================
--- head/sys/dev/usb/wlan/if_zydreg.h Sat Jul 26 15:46:41 2014 (r269126)
+++ head/sys/dev/usb/wlan/if_zydreg.h Sat Jul 26 16:06:01 2014 (r269127)
@@ -970,7 +970,7 @@
#define ZYD_TX_RATEDIV \
{ \
- 0x1, 0x2, 0xb, 0xb, 0x0, 0x0, 0x0, 0x0, 0x30, 0x18, 0xc, 0x6, \
+ 0x1, 0x2, 0xb, 0xb, 0x1, 0x1, 0x1, 0x1, 0x30, 0x18, 0xc, 0x6, \
0x36, 0x24, 0x12, 0x9 \
}
More information about the svn-src-head
mailing list