aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarino <marino@FreeBSD.org>2014-10-13 21:49:55 +0800
committermarino <marino@FreeBSD.org>2014-10-13 21:49:55 +0800
commitedfba8506888a29be7f81b4a55813af6147900c3 (patch)
treee6d71105872af1c704db0a1848e7311d4ce8e058
parent6eefcdd6d62d4dcdd0601825daad31a5dae49bdb (diff)
downloadfreebsd-ports-gnome-edfba8506888a29be7f81b4a55813af6147900c3.tar.gz
freebsd-ports-gnome-edfba8506888a29be7f81b4a55813af6147900c3.tar.zst
freebsd-ports-gnome-edfba8506888a29be7f81b4a55813af6147900c3.zip
security/wpa_supplicant: Bring in BSD driver fix from DragonFly BSD
DragonFly adopted it's "new" IEEE 802.11 infrastructure from FreeBSD. This introduced an additional isr_meshid_len field in the ieee80211req_scan_result structure. It is necessary to include this additional offset when calculating the address of the IE data buffer. Imre Vadasz introduced this fix to DragonFly on 01 Sept 2014, but a similar fix doesn't appear to be present in FreeBSD's base wpa_supplicant.
-rw-r--r--security/wpa_supplicant/Makefile2
-rw-r--r--security/wpa_supplicant/files/patch-src_drivers_driver__bsd.c16
2 files changed, 17 insertions, 1 deletions
diff --git a/security/wpa_supplicant/Makefile b/security/wpa_supplicant/Makefile
index 48624769793d..9c5afefed4e6 100644
--- a/security/wpa_supplicant/Makefile
+++ b/security/wpa_supplicant/Makefile
@@ -2,7 +2,7 @@
PORTNAME= wpa_supplicant
PORTVERSION= 2.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= security net
MASTER_SITES= http://w1.fi/releases/
diff --git a/security/wpa_supplicant/files/patch-src_drivers_driver__bsd.c b/security/wpa_supplicant/files/patch-src_drivers_driver__bsd.c
new file mode 100644
index 000000000000..1d4447cc96bf
--- /dev/null
+++ b/security/wpa_supplicant/files/patch-src_drivers_driver__bsd.c
@@ -0,0 +1,16 @@
+--- src/drivers/driver_bsd.c.orig 2014-10-09 14:41:31 UTC
++++ src/drivers/driver_bsd.c
+@@ -1334,7 +1334,13 @@ wpa_driver_bsd_add_scan_entry(struct wpa
+ *pos++ = 1;
+ *pos++ = sr->isr_erp;
+
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
++ || defined(__DragonFly__)
++ os_memcpy(pos, (u8 *)(sr + 1) + sr->isr_ssid_len + sr->isr_meshid_len,
++ sr->isr_ie_len);
++#else
+ os_memcpy(pos, (u8 *)(sr + 1) + sr->isr_ssid_len, sr->isr_ie_len);
++#endif
+ pos += sr->isr_ie_len;
+
+ result->ie_len = pos - (u8 *)(result + 1);