[PATCH] p2p: Fix the setter function for DBus group properties
Angie Chinchilla
angie.v.chinchilla
Fri Feb 3 16:46:02 PST 2012
From: Todd Previte <toddx.a.previte at intel.com>
The setter function uses the same hostapd_data structure as the getter which
causes it to crash if called on a P2P client. To overcome this issue, the
role is checked to ensure it is called on a group owner and the pointer
is examined for validity. The function will return an error if called on
a non-GO system.
Signed-hostap: Todd Previte <toddx.a.previte at intel.com>
Signed-hostap: Angie Chinchilla <angie.v.chinchilla at intel.com>
---
wpa_supplicant/dbus/dbus_new_handlers_p2p.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
index d621fb2..295b68e 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c
@@ -1764,13 +1764,13 @@ dbus_bool_t wpas_dbus_setter_p2p_group_properties(DBusMessageIter *iter,
DBusMessageIter variant_iter, iter_dict;
struct wpa_dbus_dict_entry entry = { .type = DBUS_TYPE_STRING };
unsigned int i;
- struct hostapd_data *hapd = wpa_s->ap_iface->bss[0];
+ struct hostapd_data *hapd = NULL;
- if (!hapd) {
- dbus_set_error_const(error, DBUS_ERROR_FAILED,
- "internal error");
+ if (wpas_get_p2p_role(wpa_s) == WPAS_P2P_ROLE_GO &&
+ wpa_s->ap_iface != NULL)
+ hapd = wpa_s->ap_iface->bss[0];
+ else
return FALSE;
- }
dbus_message_iter_recurse(iter, &variant_iter);
if (!wpa_dbus_dict_open_read(&variant_iter, &iter_dict, error))
--
1.7.0.4
More information about the Hostap
mailing list