P2P: Fix D-Bus persistent parameter in group started event
authorJouni Malinen <jouni@qca.qualcomm.com>
Tue, 2 Aug 2016 20:47:38 +0000 (23:47 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 2 Aug 2016 20:47:38 +0000 (23:47 +0300)
wpas_p2p_persistent_group() returns non-zero for persistent groups. This
value happens to be 2 instead of 1 due to the
P2P_GROUP_CAPAB_PERSISTENT_GROUP value. This ended up with D-Bus code
trying to encode 2 as a DBUS_TYPE_BOOLEAN value which results in an
assert from the library. Fix this by modifying
wpas_p2p_persistent_group() to return 0 or 1 instead of 0 or an
arbitrary non-zero.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/p2p_supplicant.c

index cb8df66..31eeb38 100644 (file)
@@ -1076,7 +1076,7 @@ static int wpas_p2p_persistent_group(struct wpa_supplicant *wpa_s,
                   "go_dev_addr=" MACSTR,
                   MAC2STR(bssid), group_capab, MAC2STR(go_dev_addr));
 
-       return group_capab & P2P_GROUP_CAPAB_PERSISTENT_GROUP;
+       return !!(group_capab & P2P_GROUP_CAPAB_PERSISTENT_GROUP);
 }