release-request-a84b3435-75fa-41e8-bd3c-ca0f4cbd5cc5-for-git_oc-m2-release-4352002 snap-temp-L88700000105039240

Change-Id: Ib1d1fb963350b308551671954791fdfa17985669
diff --git a/client_interface_impl.cpp b/client_interface_impl.cpp
index 974ff17..9a1785c 100644
--- a/client_interface_impl.cpp
+++ b/client_interface_impl.cpp
@@ -199,6 +199,11 @@
 }
 
 bool ClientInterfaceImpl::SignalPoll(vector<int32_t>* out_signal_poll_results) {
+  if (!IsAssociated()) {
+    LOG(INFO) << "Fail RSSI polling because wifi is not associated.";
+    return false;
+  }
+
   StationInfo station_info;
   if (!netlink_utils_->GetStationInfo(interface_index_,
                                       bssid_,
diff --git a/scanning/offload/offload_scan_manager.cpp b/scanning/offload/offload_scan_manager.cpp
index 2592aee..9bcbb0f 100644
--- a/scanning/offload/offload_scan_manager.cpp
+++ b/scanning/offload/offload_scan_manager.cpp
@@ -76,7 +76,6 @@
       wifi_offload_callback_(nullptr),
       death_recipient_(nullptr),
       offload_status_(OffloadScanManager::kError),
-      cached_scan_results_(new std::vector<NativeScanResult>()),
       service_available_(false),
       offload_service_utils_(utils),
       offload_callback_handlers_(new OffloadCallbackHandlersImpl(this)),
@@ -239,7 +238,7 @@
 
 bool OffloadScanManager::getScanResults(
     std::vector<NativeScanResult>* out_scan_results) {
-  for (auto scan_result : *cached_scan_results_) {
+  for (const auto& scan_result : cached_scan_results_) {
     out_scan_results->push_back(scan_result);
   }
   return true;
@@ -261,14 +260,13 @@
   if (wifi_offload_hal_ != nullptr) {
     wifi_offload_hal_->unlinkToDeath(death_recipient_);
   }
-  delete cached_scan_results_;
 }
 
 void OffloadScanManager::ReportScanResults(
     const vector<ScanResult>& scanResult) {
-  cached_scan_results_->clear();
+  cached_scan_results_.clear();
   if (!OffloadScanUtils::convertToNativeScanResults(scanResult,
-                                                    cached_scan_results_)) {
+                                                    &cached_scan_results_)) {
     LOG(WARNING) << "Unable to convert scan results to native format";
     return;
   }
diff --git a/scanning/offload/offload_scan_manager.h b/scanning/offload/offload_scan_manager.h
index 6be3ec0..2c4fa96 100644
--- a/scanning/offload/offload_scan_manager.h
+++ b/scanning/offload/offload_scan_manager.h
@@ -147,7 +147,7 @@
   android::sp<OffloadCallback> wifi_offload_callback_;
   android::sp<OffloadDeathRecipient> death_recipient_;
   StatusCode offload_status_;
-  std::vector<::com::android::server::wifi::wificond::NativeScanResult>*
+  std::vector<::com::android::server::wifi::wificond::NativeScanResult>
       cached_scan_results_;
   bool service_available_;