Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Oct 2004 19:48:18 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 63843 for review
Message-ID:  <200410271948.i9RJmIMp011321@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=63843

Change 63843 by sam@sam_ebb on 2004/10/27 19:47:46

	Change IEEE80211_IOC_WPAIE to copy only the mac address in
	and only as much data as request out.  Makes it a bit more
	convenient to use.

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#5 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#5 (text+ko) ====

@@ -890,9 +890,9 @@
 	struct ieee80211req_wpaie wpaie;
 	int error;
 
-	if (ireq->i_len != sizeof(wpaie))
+	if (ireq->i_len < IEEE80211_ADDR_LEN)
 		return EINVAL;
-	error = copyin(ireq->i_data, &wpaie, sizeof(wpaie));
+	error = copyin(ireq->i_data, wpaie.wpa_macaddr, IEEE80211_ADDR_LEN);
 	if (error != 0)
 		return error;
 	ni = ieee80211_find_node(ic, wpaie.wpa_macaddr);
@@ -906,7 +906,9 @@
 		memcpy(wpaie.wpa_ie, ni->ni_wpa_ie, ielen);
 	}
 	ieee80211_free_node(ic, ni);
-	return copyout(&wpaie, ireq->i_data, sizeof(wpaie));
+	if (ireq->i_len > sizeof(wpaie))
+		ireq->i_len = sizeof(wpaie);
+	return copyout(&wpaie, ireq->i_data, ireq->i_len);
 }
 
 static int



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