Michael Schaller | 30 May 19:19 2016

Bug with OpenSSL engine initialization in tls_engine_load_dynamic_generic

Hi everyone,

The first ENGINE_by_id call (line 730) in
tls_engine_load_dynamic_generic is used to check if a certain OpenSSL
engine is already loaded:

This ENGINE_by_id call has a side effect though that it automatically
loads that engine with the default options if the shared object of
that engine can be found by openssl. This means that if the autoload
succeeds then this check will always be true and hence this engine
can't ever be loaded with the specific options for WPA supplicant as
specified in the configuration.

The autoload code in OpenSSL was introduced in 2002 with this commit:

I'm not sure what's the best way to fix this issue but you'll find a
patch proposal in the end that iterates over the available engines
instead of using ENGINE_by_id to avoid the engine autoload.


Michael Schaller

Proposed patch:

--- ./src/crypto/tls_openssl.c.old 2016-05-30 13:35:15.341868226 +0000
+++ ./src/crypto/tls_openssl.c 2016-05-30 16:56:29.880912599 +0000
 <at>  <at>  -617,7 +617,14  <at>  <at> 
(Continue reading)

Rafał Miłecki | 30 May 08:53 2016

[PATCH RFC] AP: Allow using existing interfaces for all BSS-es

Some drivers (e.g. brcmfmac) may not support deleting virtual
interfaces. In such cases we can start AP interfaces once only. This can
be easily workarounded by allowing driver(s) to use all existing

Signed-off-by: Rafał Miłecki <zajec5 <at> gmail.com>

This patch allows me freely use BCM4366 with brcmfmac and multiple AP
interfaces. Unfortunately I don't know reason for having this limiration
in the first place. Do you know if my patch may break anything?
 src/ap/hostapd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
index 42c1aaa..1974b2f 100644
--- a/src/ap/hostapd.c
+++ b/src/ap/hostapd.c
 <at>  <at>  -941,7 +941,7  <at>  <at>  static int hostapd_setup_bss(struct hostapd_data *hapd, int first)
 				   conf->iface, addr, hapd,
 				   &hapd->drv_priv, force_ifname, if_addr,
 				   conf->bridge[0] ? conf->bridge : NULL,
-				   first == -1)) {
+				   true)) {
 			wpa_printf(MSG_ERROR, "Failed to add BSS (BSSID="
 				   MACSTR ")", MAC2STR(hapd->own_addr));
 			hapd->interface_added = 0;

(Continue reading)

Reinholds@comcast.net | 28 May 05:35 2016

wpa_supplicant not detecting loss of an association with AP

I am attempting to address a problem in which the wpa_supplicant does not
appear to detect the loss of association with an access point. The problem
is intermittent and does not happen consistently. However, when it does
happen the system on which wpa_supplicant is running does not recover and
manual intervention is necessary. Manual intervention involves disconnecting
wpa_supplicant from the AP, and then reconnecting to the AP.
In debugging the problem we looked at the state of the wifi connection by
using iwconfig which indicates that the wlan0 interface is not-associated.
This is consistent with the output from the ip link command which also
indicates that the wlan0 is "DOWN".
However, if we use D-feet to examine the properties of
fi.w1.wpa_supplicant1.Interface we find that it believes that it is
associated with the wifi AP. Further, there are no indications in the
journalctl log file suggest that wpa_supplicant is seeing the disconnection
and trying to reestablish it.

I am looking for suggestions as to how to further identify what is causing
the problem, and suggestions for work arounds that will allow the Raspberry
PI-3 to remain online.

The testing is being done using wpasupplicant 2.3, on a Raspberry PI-3
running Raspian version 8 (Jessie) and Linux kernel 4.4.10-v7+

A segment of the journalctl output, starting at the detection of the lost
carrier is below:

May 27 10:05:58 raspberrypi systemd-networkd[1032]: wlan0           : lost
May 27 10:05:58 raspberrypi systemd-networkd[1032]: wlan0           : DHCP
(Continue reading)

Nishant Chaprana | 27 May 11:23 2016

[PATCH] [D-Bus][GroupStarted] Indicate whether created group is persistent or not.

This patch sends extra parameter in GroupStarted event to indicate
whether created group is Persistent or not. It is similar to
[PERSISTENT] tag which comes in P2P-GROUP-STARTED over CTRL interface.

Signed-off-by: Nishant Chaprana <n.chaprana <at> samsung.com>
 wpa_supplicant/dbus/dbus_new.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
index d894f6a..0827d62 100644
--- a/wpa_supplicant/dbus/dbus_new.c
+++ b/wpa_supplicant/dbus/dbus_new.c
 <at>  <at>  -1300,6 +1300,8  <at>  <at>  void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s,
 					      wpa_s->dbus_new_path) ||
 	    !wpa_dbus_dict_append_string(&dict_iter, "role",
 					 client ? "client" : "GO") ||
+	    !wpa_dbus_dict_append_bool(&dict_iter, "persistent",
+					 network_id ? 1 : 0) ||
 	    !wpa_dbus_dict_append_object_path(&dict_iter, "group_object",
 					      wpa_s->dbus_groupobj_path) ||
 	    !wpa_dbus_dict_close_write(&iter, &dict_iter)) {

Jörg Krause | 23 May 17:11 2016

[PATCH] wpa_cli: Run action file in case of an AP event

Run the action script in case of an AP event "AP-ENABLED" or "AP-DISABLED".

Signed-off-by: Jörg Krause <joerg.krause <at> embedded.rocks>
 wpa_supplicant/wpa_cli.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/wpa_supplicant/wpa_cli.c b/wpa_supplicant/wpa_cli.c
index 9b1c802..53036ae 100644
--- a/wpa_supplicant/wpa_cli.c
+++ b/wpa_supplicant/wpa_cli.c
 <at>  <at>  -3777,6 +3777,10  <at>  <at>  static void wpa_cli_action_process(const char *msg)
 			wpa_cli_connected = 0;
 			wpa_cli_exec(action_file, ifname, "DISCONNECTED");
+	} else if (str_match(pos, AP_EVENT_ENABLED)) {
+		wpa_cli_exec(action_file, ctrl_ifname, pos);
+	} else if (str_match(pos, AP_EVENT_DISABLED)) {
+		wpa_cli_exec(action_file, ctrl_ifname, pos);
 	} else if (str_match(pos, MESH_GROUP_STARTED)) {
 		wpa_cli_exec(action_file, ctrl_ifname, pos);
 	} else if (str_match(pos, MESH_GROUP_REMOVED)) {


Hostap mailing list
Hostap <at> lists.infradead.org
(Continue reading)

Jose Blanquicet | 23 May 11:12 2016

P2P-GO remains in an autonomous group after last P2P-CLI disconnection


We have found that when our system is the P2P-GO and the last P2P-CLI
in the P2P-Group gets disconnected, the wpa_supplicant does not delete
the P2P-Group and instead the P2P-GO remains alone as kind of
autonomous group. We have not found any specific behavior in such a
scenario specified by the Wi-Fi Alliance in the P2P Specifications,
thus how to proceed is a choice. Therefore, we would like to know if
the no-deletion of the group follows a particular request inside the
wpa_supplicant. If it is not true and it does not affect any other
process, we would like to add such a deletion to avoid the P2P-GO
remains alone in the group, which could be done by disabling the
network associated to the group.

What do you think? Any suggestion or comment?

Best Regards,

Jose Blanquicet
James Feeney | 19 May 23:11 2016

"kernel: BUG: scheduling while atomic:" errors with linux kernel 4.6

Arch linux 4.6-1
wpa_supplicant 1:2.5-3
Toshiba Satellite, circa 2011, with a Pentium Dual-Core Mobile
Error is not seen on other machines.

kernel: BUG: scheduling while atomic: wpa_supplicant/375/0x00000002
kernel: BUG: scheduling while atomic: wpa_supplicant/375/0x00000000
kernel: BUG: scheduling while atomic: wpa_supplicant/627/0x00000002
kernel: BUG: scheduling while atomic: wpa_supplicant/627/0x00000000
systemd-coredump[630]: Process 627 (wpa_supplicant) of user 0 dumped core.

See attached.
May 19 10:26:07 lapis kernel: BUG: scheduling while atomic: wpa_supplicant/627/0x00000002
May 19 10:26:07 lapis kernel: Modules linked in: nf_log_ipv6 nf_log_ipv4 nf_log_common
nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 nft_log nft_limit nft_meta
nft_ct nf_conntrack nft_hash nft_rbtree nf_tables_inet nf_tables_ipv6 nf_tables_ipv4 nf_tables
nfnetlink bonding uvcvideo videobuf2_vmalloc videobuf2_memops arc4 rtl8192ce videobuf2_v4l2
joydev mousedev rtl_pci videobuf2_core rtl8192c_common rtlwifi ums_realtek uas videodev mac80211
usb_storage media cfg80211 iTCO_wdt iTCO_vendor_support toshiba_acpi pcspkr input_leds
intel_powerclamp sparse_keymap coretemp atl1c toshiba_bluetooth led_class serio_raw rfkill
psmouse i2c_i801 snd_hda_codec_conexant snd_hda_codec_generic wmi snd_hda_intel intel_ips
snd_hda_codec snd_hda_core ac snd_hwdep snd_pcm snd_timer snd evdev fjes shpchp mac_hid battery
May 19 10:26:07 lapis kernel:  lpc_ich soundcore mei_me mei acpi_cpufreq tpm_tis tpm processor
sch_fq_codel sg ip_tables x_tables ext4 crc16 jbd2 mbcache sr_mod cdrom sd_mod atkbd libps2 ahci
(Continue reading)

Jonathan Afek | 19 May 15:06 2016

[PATCH 1/9] tests: Support p2p group interfaces in hwsim remote tests

Start using the wpa_supplicant remote udp interface for the
control and monitor sockets for p2p group interfaces so
that p2p tests would work on real hardware.
Also have the group requests and events show in the test log
with the hostname and the interface name of the group interface.

Signed-off-by: Jonathan Afek <jonathanx.afek <at> intel.com>
 tests/hwsim/wpasupplicant.py | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py
index f26124d..bee447a 100644
--- a/tests/hwsim/wpasupplicant.py
+++ b/tests/hwsim/wpasupplicant.py
 <at>  <at>  -158,8 +158,12  <at>  <at>  class WpaSupplicant:

     def group_request(self, cmd):
         if self.group_ifname and self.group_ifname != self.ifname:
-            logger.debug(self.group_ifname + ": CTRL: " + cmd)
-            gctrl = wpaspy.Ctrl(os.path.join(wpas_ctrl, self.group_ifname))
+            if self.hostname is None:
+                gctrl = wpaspy.Ctrl(os.path.join(wpas_ctrl, self.group_ifname))
+            else:
+                port = self.get_ctrl_iface_port(self.group_ifname)
+                gctrl = wpaspy.Ctrl(self.hostname, port)
+            logger.debug(self.group_dbg + ": CTRL(group): " + cmd)
             return gctrl.request(cmd)
         return self.request(cmd)

(Continue reading)

Ann Lo | 18 May 20:07 2016

Question on Multiple BSSID support

The hostapd configuration allows for multiple BSSID support, with the
following comment:

# most of the above items can be used here (apart from radio interface specific
# items, like channel)

Would you advise whether it is OK to define the following
configurations differently for each BSSID? We are using ath10k driver.
1) WMM parameters
2) Station inactivity limit
3) max_num_sta
4) WPA/IEEE 802.11i configuration

David Benjamin | 18 May 19:10 2016

[PATCH] OpenSSL: Remove two more accesses of ssl_ctx->cert_store.

Patch attached.

Hostap mailing list
Hostap <at> lists.infradead.org
Jouni Malinen | 14 May 19:09 2016

Re: [PATCH v3 1/6] tests: remotehost.py use join

Thanks, all six patches applied.


Jouni Malinen                                            PGP id EFC895FA