diff --git a/wpa_supplicant-git-f5b74b966c942feb95a8ddbb7d130540b15b796d.patch b/wpa_supplicant-git-f5b74b966c942feb95a8ddbb7d130540b15b796d.patch new file mode 100644 index 0000000..5c96006 --- /dev/null +++ b/wpa_supplicant-git-f5b74b966c942feb95a8ddbb7d130540b15b796d.patch @@ -0,0 +1,33 @@ +commit f5b74b966c942feb95a8ddbb7d130540b15b796d +Author: Beniamino Galvani +Date: Mon Oct 30 11:14:40 2017 +0100 + + common: Avoid conflict with __bitwise macro from linux/types.h + + Undefine the __bitwise macro before defining it to avoid conflicts + with the one from linux/types.h; the same is done some lines above + when __CHECKER__ is defined. Fixes the following warning: + + In file included from ../src/l2_packet/l2_packet_linux.c:15:0: + hostap/src/utils/common.h:438:0: warning: "__bitwise" redefined + #define __bitwise + + In file included from /usr/include/linux/filter.h:9:0, + from ../src/l2_packet/l2_packet_linux.c:13: + /usr/include/linux/types.h:21:0: note: this is the location of the previous definition + #define __bitwise __bitwise__ + + Signed-off-by: Beniamino Galvani + +diff --git a/src/utils/common.h b/src/utils/common.h +index 46e96a65b..fec7f6013 100644 +--- a/src/utils/common.h ++++ b/src/utils/common.h +@@ -435,6 +435,7 @@ void perror(const char *s); + #define __bitwise __attribute__((bitwise)) + #else + #define __force ++#undef __bitwise + #define __bitwise + #endif + diff --git a/wpa_supplicant-git-fa67debf4c6ddbc881a212b175faa6d5d0d90c8c.patch b/wpa_supplicant-git-fa67debf4c6ddbc881a212b175faa6d5d0d90c8c.patch new file mode 100644 index 0000000..f678fec --- /dev/null +++ b/wpa_supplicant-git-fa67debf4c6ddbc881a212b175faa6d5d0d90c8c.patch @@ -0,0 +1,39 @@ +commit fa67debf4c6ddbc881a212b175faa6d5d0d90c8c +Author: Jouni Malinen +Date: Sat Jan 14 01:04:31 2017 +0200 + + Fix duplicate Reassociation Request frame dropping + + Relational operators (==) have higher precedence than the ternary + conditional in C. The last_subtype check for association/reassociation + was broken due to incorrect assumption about the precedence. Fix this by + adding parenthesis around the ternary conditional. + + The previous implementation worked for Association Request frames by + accident since WLAN_FC_STYPE_ASSOC_REQ happens to have value 0 and when + the last receive frame was an Association Request frame, the + sta->last_subtype == reassoc check was true and non-zero + WLAN_FC_STYPE_REASSOC_REQ was interpreted as true. However, this was + broken for Reassociation Request frame. reassoc == 1 in that case could + have matched received Association Response frame (subtype == 1), but + those are not received in AP mode and as such, this did not break other + behavior apart from not being able to drop duplicated Reassociation + Request frames. + + Signed-off-by: Jouni Malinen + +diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c +index 060b63517..92a7ec6db 100644 +--- a/src/ap/ieee802_11.c ++++ b/src/ap/ieee802_11.c +@@ -2527,8 +2527,8 @@ static void handle_assoc(struct hostapd_data *hapd, + if ((fc & WLAN_FC_RETRY) && + sta->last_seq_ctrl != WLAN_INVALID_MGMT_SEQ && + sta->last_seq_ctrl == seq_ctrl && +- sta->last_subtype == reassoc ? WLAN_FC_STYPE_REASSOC_REQ : +- WLAN_FC_STYPE_ASSOC_REQ) { ++ sta->last_subtype == (reassoc ? WLAN_FC_STYPE_REASSOC_REQ : ++ WLAN_FC_STYPE_ASSOC_REQ)) { + hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, + HOSTAPD_LEVEL_DEBUG, + "Drop repeated association frame seq_ctrl=0x%x", diff --git a/wpa_supplicant.changes b/wpa_supplicant.changes index 3358ca2..abbb7a4 100644 --- a/wpa_supplicant.changes +++ b/wpa_supplicant.changes @@ -1,3 +1,16 @@ +------------------------------------------------------------------- +Mon Oct 15 16:20:25 CEST 2018 - ro@suse.de + +- compile eapol_test binary to allow testing via + radius proxy and server + (note: this does not match CONFIG_EAPOL_TEST which sets -Werror + and activates an assert call inside the code of wpa_supplicant) + (bsc#1111873), (fate#326725)o +- add patch to fix wrong operator precedence in ieee802_11.c + wpa_supplicant-git-fa67debf4c6ddbc881a212b175faa6d5d0d90c8c.patch +- add patch to avoid redefinition of __bitwise macro + wpa_supplicant-git-f5b74b966c942feb95a8ddbb7d130540b15b796d.patch + ------------------------------------------------------------------- Fri Oct 12 13:04:57 UTC 2018 - Karol Babioch diff --git a/wpa_supplicant.spec b/wpa_supplicant.spec index 5331e73..fa13325 100644 --- a/wpa_supplicant.spec +++ b/wpa_supplicant.spec @@ -54,6 +54,8 @@ Patch19: wpa_supplicant-bnc-1099835-clear-default_passwd_cb.patch Patch20: rebased-v2.6-0009-WPA-Ignore-unauthenticated-encrypted-EAPOL-Key-data.patch Patch21: wpa-supplicant-log-file-permission.patch Patch22: wpa-supplicant-log-file-cloexec.patch +Patch23: wpa_supplicant-git-fa67debf4c6ddbc881a212b175faa6d5d0d90c8c.patch +Patch24: wpa_supplicant-git-f5b74b966c942feb95a8ddbb7d130540b15b796d.patch BuildRequires: openssl-devel BuildRequires: pkgconfig @@ -105,10 +107,13 @@ cp %{SOURCE1} wpa_supplicant/.config %patch20 -p1 %patch21 -p1 %patch22 -p1 +%patch23 -p1 +%patch24 -p1 %build cd wpa_supplicant CFLAGS="%{optflags}" make V=1 %{?_smp_mflags} +CFLAGS="%{optflags}" make V=1 %{?_smp_mflags} eapol_test cd wpa_gui-qt4 %qmake5 make %{?_smp_mflags} @@ -118,6 +123,7 @@ install -d %{buildroot}/%{_sbindir} install -m 0755 wpa_supplicant/wpa_cli %{buildroot}%{_sbindir} install -m 0755 wpa_supplicant/wpa_passphrase %{buildroot}%{_sbindir} install -m 0755 wpa_supplicant/wpa_supplicant %{buildroot}%{_sbindir} +install -m 0755 wpa_supplicant/eapol_test %{buildroot}%{_sbindir} install -d %{buildroot}%{_sysconfdir}/dbus-1/system.d install -m 0644 wpa_supplicant/dbus/dbus-wpa_supplicant.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/wpa_supplicant.conf install -d %{buildroot}/%{_sysconfdir}/%{name} @@ -130,9 +136,8 @@ install -m 644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/logrotate.d/wpa_supplicant install -d %{buildroot}/%{_rundir}/%{name} install -d %{buildroot}%{_mandir}/man{5,8} install -m 0644 wpa_supplicant/doc/docbook/*.8 %{buildroot}%{_mandir}/man8 -# wpa_supplicant is built without CONFIG_PRIVSEP and CONFIG_EAPOL_TEST +# wpa_supplicant is built without CONFIG_PRIVSEP rm %{buildroot}%{_mandir}/man8/wpa_priv.* -rm %{buildroot}%{_mandir}/man8/eapol_test.* install -m 0644 wpa_supplicant/doc/docbook/*.5 %{buildroot}%{_mandir}/man5 install -m 755 wpa_supplicant/wpa_gui-qt4/wpa_gui %{buildroot}%{_sbindir} install -d %{buildroot}%{_unitdir} @@ -160,6 +165,7 @@ ln -s wpa_supplicant.service %{buildroot}%{_unitdir}/dbus-fi.w1.wpa_supplicant1. %files %defattr(-,root,root) %doc wpa_supplicant/ChangeLog COPYING README wpa_supplicant/todo.txt wpa_supplicant/examples wpa_supplicant/wpa_supplicant.conf +%{_sbindir}/eapol_test %{_sbindir}/rcwpa_supplicant %{_sbindir}/wpa_cli %{_sbindir}/wpa_passphrase