Fix use-after-free in NetworkController::removeInterfaceAddress()

Test: system/netd/tests/runtests.sh
Bug: 119496789
Change-Id: I0ebb9ac758b55f10536fef75f0eb7b69e2feccbc
(cherry picked from commit dd5a4f0ef32dbb30575a68b6869a68fc30c57dc4)
(cherry picked from commit ad883b9b99bb472c25bbd83c98724fbc4969744e)
diff --git a/server/NetworkController.cpp b/server/NetworkController.cpp
index 5bbfe3f..a260056 100644
--- a/server/NetworkController.cpp
+++ b/server/NetworkController.cpp
@@ -629,7 +629,9 @@
     std::unordered_set<unsigned>& ifindices = ifindicesIter->second;
     if (ifindices.erase(ifindex) > 0) {
         if (ifindices.size() == 0) {
-            mAddressToIfindices.erase(ifindicesIter);
+            mAddressToIfindices.erase(ifindicesIter);  // Invalidates ifindices
+            // The address is no longer configured on any interface.
+            return true;
         }
     } else {
         ALOGE("No record of address %s on interface %u", address, ifindex);