Merge "[wpa_supplicant] cumilative patch from commit bb945b98f" into udc-dev
diff --git a/wpa_supplicant/aidl/p2p_iface.cpp b/wpa_supplicant/aidl/p2p_iface.cpp
index 5122cea..33db802 100644
--- a/wpa_supplicant/aidl/p2p_iface.cpp
+++ b/wpa_supplicant/aidl/p2p_iface.cpp
@@ -1113,7 +1113,7 @@
const std::vector<uint8_t>& peer_address)
{
struct wpa_supplicant* wpa_s = retrieveIfacePtr();
- if (peer_address.size() != ETH_ALEN) {
+ if (go_device_address.size() != ETH_ALEN || peer_address.size() != ETH_ALEN) {
return {createStatus(SupplicantStatusCode::FAILURE_UNKNOWN)};
}
if (wpas_p2p_invite_group(
diff --git a/wpa_supplicant/notify.c b/wpa_supplicant/notify.c
index 1123d3f..23a5ad9 100644
--- a/wpa_supplicant/notify.c
+++ b/wpa_supplicant/notify.c
@@ -37,12 +37,6 @@
}
#endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
-#ifdef CONFIG_AIDL
- global->aidl = wpas_aidl_init(global);
- if (!global->aidl)
- return -1;
-#endif /* CONFIG_AIDL */
-
return 0;
}
@@ -68,9 +62,17 @@
return -1;
}
+#ifdef CONFIG_AIDL
+ /* AIDL initialization may not be complete at this point.
+ * Initialization is done after daemonizing in order to avoid
+ * issues with the file descriptor.
+ */
+ if (!wpa_s || !wpa_s->global->aidl)
+ return 0;
/* HIDL interface wants to keep track of the P2P mgmt iface. */
if (wpas_aidl_register_interface(wpa_s))
return -1;
+#endif
return 0;
}
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 134bcf1..99ecef8 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -69,6 +69,7 @@
#include "ap/ap_config.h"
#include "ap/hostapd.h"
#endif /* CONFIG_MESH */
+#include "aidl/aidl.h"
const char *const wpa_supplicant_version =
"wpa_supplicant v" VERSION_STR "\n"
@@ -7918,6 +7919,12 @@
wpa_s->ctrl_iface);
}
+#ifdef CONFIG_AIDL
+ global->aidl = wpas_aidl_init(global);
+ if (!global->aidl)
+ return -1;
+#endif /* CONFIG_AIDL */
+
eloop_register_signal_terminate(wpa_supplicant_terminate, global);
eloop_register_signal_reconfig(wpa_supplicant_reconfig, global);