svn commit: r298556 - head/sbin/ifconfig

Pedro F. Giffuni pfg at FreeBSD.org
Mon Apr 25 00:41:25 UTC 2016


Author: pfg
Date: Mon Apr 25 00:41:23 2016
New Revision: 298556
URL: https://svnweb.freebsd.org/changeset/base/298556

Log:
  ifconfig: prevent some improbable signed integer overflows.
  
  ic_nchans, from struct:ieee80211req_chaninfo, is an unsigned int.
  Use an unsigned index to prevent overflowing the index.
  
  Adopt unsigned integers in other cases where it is useful
  to be aware of the unsigned quantities and there is no
  risk of the values being negative.
  
  MFC after:	1 week

Modified:
  head/sbin/ifconfig/ifieee80211.c

Modified: head/sbin/ifconfig/ifieee80211.c
==============================================================================
--- head/sbin/ifconfig/ifieee80211.c	Sun Apr 24 22:13:55 2016	(r298555)
+++ head/sbin/ifconfig/ifieee80211.c	Mon Apr 25 00:41:23 2016	(r298556)
@@ -225,7 +225,7 @@ static int
 canpromote(int i, int from, int to)
 {
 	const struct ieee80211_channel *fc = &chaninfo->ic_chans[i];
-	int j;
+	u_int j;
 
 	if ((fc->ic_flags & from) != from)
 		return i;
@@ -304,7 +304,7 @@ promote(int i)
 static void
 mapfreq(struct ieee80211_channel *chan, int freq, int flags)
 {
-	int i;
+	u_int i;
 
 	for (i = 0; i < chaninfo->ic_nchans; i++) {
 		const struct ieee80211_channel *c = &chaninfo->ic_chans[i];
@@ -324,7 +324,7 @@ mapfreq(struct ieee80211_channel *chan, 
 static void
 mapchan(struct ieee80211_channel *chan, int ieee, int flags)
 {
-	int i;
+	u_int i;
 
 	for (i = 0; i < chaninfo->ic_nchans; i++) {
 		const struct ieee80211_channel *c = &chaninfo->ic_chans[i];
@@ -3047,7 +3047,7 @@ copy_essid(char buf[], size_t bufsize, c
 {
 	const u_int8_t *p; 
 	size_t maxlen;
-	int i;
+	u_int i;
 
 	if (essid_len > bufsize)
 		maxlen = bufsize;
@@ -4251,7 +4251,7 @@ static void
 printkey(const struct ieee80211req_key *ik)
 {
 	static const uint8_t zerodata[IEEE80211_KEYBUF_SIZE];
-	int keylen = ik->ik_keylen;
+	u_int keylen = ik->ik_keylen;
 	int printcontents;
 
 	printcontents = printkeys &&
@@ -4288,7 +4288,7 @@ printkey(const struct ieee80211req_key *
 		break;
 	}
 	if (printcontents) {
-		int i;
+		u_int i;
 
 		printf(" <");
 		for (i = 0; i < keylen; i++)


More information about the svn-src-head mailing list