Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Jul 2014 16:06:01 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r269127 - head/sys/dev/usb/wlan
Message-ID:  <201407261606.s6QG61le092895@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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						\
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407261606.s6QG61le092895>