Fix crash when device in access point mode
BUG: 27431574
Change-Id: I6c217c78bd9809383d13528ec21b9447ee7a4fce
Reviewed-on: https://weave-review.googlesource.com/2794
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/examples/provider/wifi_manager.cc b/examples/provider/wifi_manager.cc
index 7afd9ca..27bbfd6 100644
--- a/examples/provider/wifi_manager.cc
+++ b/examples/provider/wifi_manager.cc
@@ -73,8 +73,10 @@
std::string essid(' ', IW_ESSID_MAX_SIZE + 1);
wreq.u.essid.pointer = &essid[0];
wreq.u.essid.length = essid.size();
- CHECK_GE(ioctl(sockf_d, SIOCGIWESSID, &wreq), 0) << strerror(errno);
- essid.resize(wreq.u.essid.length);
+ if (ioctl(sockf_d, SIOCGIWESSID, &wreq) >= 0)
+ essid.resize(wreq.u.essid.length);
+ else
+ essid.clear();
close(sockf_d);
return essid;
}
@@ -90,13 +92,13 @@
wreq.u.data.pointer = ⦥
wreq.u.data.length = sizeof(range);
- CHECK_GE(ioctl(sockf_d, SIOCGIWRANGE, &wreq), 0) << strerror(errno);
-
bool result = false;
- for (size_t i = 0; !result && i < range.num_frequency; ++i) {
- double freq = range.freq[i].m * std::pow(10., range.freq[i].e);
- if (start <= freq && freq <= end)
- result = true;
+ if (ioctl(sockf_d, SIOCGIWRANGE, &wreq) >= 0) {
+ for (size_t i = 0; !result && i < range.num_frequency; ++i) {
+ double freq = range.freq[i].m * std::pow(10., range.freq[i].e);
+ if (start <= freq && freq <= end)
+ result = true;
+ }
}
close(sockf_d);