SecurityManager: Don't use iterator after erase()

After we erase() 'entry', it is invalidated.  So we cache
entry->second prior to the erase() call, to avoid using
'entry' after erase.

Test: TreeHugger
Change-Id: Icb470cd79bbf1bfda12c2f882c3553fd33755554
diff --git a/gd/security/internal/security_manager_impl.cc b/gd/security/internal/security_manager_impl.cc
index 92556c3..7e64dc7 100644
--- a/gd/security/internal/security_manager_impl.cc
+++ b/gd/security/internal/security_manager_impl.cc
@@ -92,8 +92,9 @@
 void SecurityManagerImpl::CancelBond(hci::AddressWithType device) {
   auto entry = pairing_handler_map_.find(device.GetAddress());
   if (entry != pairing_handler_map_.end()) {
+    auto cancel_me = entry->second;
     pairing_handler_map_.erase(entry);
-    entry->second->Cancel();
+    cancel_me->Cancel();
   }
 }