camera2: Fix empty set handling for eviction.

Bug: 20304829
Change-Id: I120ed6e41ca592c3770797a5fb1e5ce556543949
diff --git a/services/camera/libcameraservice/utils/ClientManager.h b/services/camera/libcameraservice/utils/ClientManager.h
index aa40a2d..5afb7a3 100644
--- a/services/camera/libcameraservice/utils/ClientManager.h
+++ b/services/camera/libcameraservice/utils/ClientManager.h
@@ -432,15 +432,17 @@
 
     auto iter = evicted.cbegin();
 
-    // Remove evicted clients from list
-    mClients.erase(std::remove_if(mClients.begin(), mClients.end(),
-        [&iter] (std::shared_ptr<ClientDescriptor<KEY, VALUE>>& curClientPtr) {
-            if (curClientPtr->getKey() == (*iter)->getKey()) {
-                iter++;
-                return true;
-            }
-            return false;
-        }), mClients.end());
+    if (iter != evicted.cend()) {
+        // Remove evicted clients from list
+        mClients.erase(std::remove_if(mClients.begin(), mClients.end(),
+            [&iter] (std::shared_ptr<ClientDescriptor<KEY, VALUE>>& curClientPtr) {
+                if (curClientPtr->getKey() == (*iter)->getKey()) {
+                    iter++;
+                    return true;
+                }
+                return false;
+            }), mClients.end());
+    }
 
     mClients.push_back(client);
     mRemovedCondition.broadcast();