aboutsummaryrefslogtreecommitdiffstats
path: root/src/p2p
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2014-04-29 10:53:02 -0700
committerDmitry Shmidt <dimitrysh@google.com>2014-04-29 10:53:02 -0700
commit7832adbbd72a1b784b7fb74a71a5d4085b0cb0d3 (patch)
tree10a92c1068bf401c047f88baa658cafd2710f433 /src/p2p
parentf9bdef99ce3b2858f2812c745a3d6bb093fb0e5d (diff)
downloadandroid_external_wpa_supplicant_8-7832adbbd72a1b784b7fb74a71a5d4085b0cb0d3.tar.gz
android_external_wpa_supplicant_8-7832adbbd72a1b784b7fb74a71a5d4085b0cb0d3.tar.bz2
android_external_wpa_supplicant_8-7832adbbd72a1b784b7fb74a71a5d4085b0cb0d3.zip
Cumulative patch from commit c0333c8dd59b9e254d3fc725c984b1c0cd3d496a
c0333c8 Check rx_mgmt::frame more consistently against NULL d6c6b1f Make sta NULL-check easier for static analyzers 0bceb8d Make dl_list_first() and dl_list_last() uses easier for static analyzers 5f693cb WPS HTTP: Remove unused assignment ee4fefc Remove duplicated variable zeroing 4a9d0eb Make PMKID check easier for static analyzers 06df2aa Remove floating constant suffix 'd' from test coee 9670f87 ACS: Clean up ifdef CONFIG_ACS to avoid unreachable code ece88f7 Make last_scan_res update easier for static analyzers d06e9ac P2P: Verify operating channel validity for NFC connection handover 13a524a nl80211: Remove unnecessary wpa_driver_nl80211_set_freq() wrapper e87ef75 nl80211: Add support for changing AP mode channel bandwidth 3057518 Sync with mac80211-next.git nl80211.h 5f0bca7 Retry initial 20/40 MHz co-ex scan if the driver is busy 587d60d Add AP mode support for HT 20/40 co-ex Action frame 9c47f6a hostapd: Extend support for HT 20/40 coexistence feature 196c9c7 Make channel parameters available in set_ap() driver operation b7a6702 Indicate disconnection event on interface disabled b89962b Fix wpa_config_read() with existing config block 27b4187 WPS: Print setsockopt() failure in debug log 52cb207 trace: Replace demangle.h with internal defines 0e80ea2 nl80211: Fix some coding style issues a26582c Make qca-vendor.h independent of other header files 4a64d5a nl80211: Allocate QCA vendor subcmd for extended statistics Change-Id: Ibabee77b2b87f04f99d6b1ca0f1ac741cb9222c0 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/p2p')
-rw-r--r--src/p2p/p2p.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
index bcc7e644..b30ea56f 100644
--- a/src/p2p/p2p.c
+++ b/src/p2p/p2p.c
@@ -4210,7 +4210,7 @@ p2p_get_peer_found(struct p2p_data *p2p, const u8 *addr, int next)
dev = dl_list_first(&dev->list,
struct p2p_device,
list);
- if (&dev->list == &p2p->devices)
+ if (!dev || &dev->list == &p2p->devices)
return NULL;
} while (dev->flags & P2P_DEV_PROBE_REQ_ONLY);
}
@@ -4222,7 +4222,7 @@ p2p_get_peer_found(struct p2p_data *p2p, const u8 *addr, int next)
dev = dl_list_first(&dev->list,
struct p2p_device,
list);
- if (&dev->list == &p2p->devices)
+ if (!dev || &dev->list == &p2p->devices)
return NULL;
}
}
@@ -4463,12 +4463,24 @@ static struct wpabuf * p2p_build_nfc_handover(struct p2p_data *p2p,
p2p_buf_add_device_info(buf, p2p, NULL);
if (p2p->num_groups > 0) {
+ int freq = p2p_group_get_freq(p2p->groups[0]);
role = P2P_GO_IN_A_GROUP;
- p2p_freq_to_channel(p2p_group_get_freq(p2p->groups[0]),
- &op_class, &channel);
+ if (p2p_freq_to_channel(freq, &op_class, &channel) < 0) {
+ p2p_dbg(p2p,
+ "Unknown GO operating frequency %d MHz for NFC handover",
+ freq);
+ wpabuf_free(buf);
+ return NULL;
+ }
} else if (client_freq > 0) {
role = P2P_CLIENT_IN_A_GROUP;
- p2p_freq_to_channel(client_freq, &op_class, &channel);
+ if (p2p_freq_to_channel(client_freq, &op_class, &channel) < 0) {
+ p2p_dbg(p2p,
+ "Unknown client operating frequency %d MHz for NFC handover",
+ client_freq);
+ wpabuf_free(buf);
+ return NULL;
+ }
}
p2p_buf_add_oob_go_neg_channel(buf, p2p->cfg->country, op_class,