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);