Check if 'cache' is a valid pointer before dereference it

Null pointer dereference occurs when
step1: thread#1 is waiting for DNS response from server.
step2: thread#2 is querying on the same hostname, which release
       lock and enter waiting state.
step3: network disconnect.

Bug: b/124776120
Test: runtests.sh pass
Change-Id: I3ef1a2f06c4fd547fa3da4eed1a9152c3c55e704
diff --git a/resolv/res_cache.cpp b/resolv/res_cache.cpp
index d766baf..8d498ab 100644
--- a/resolv/res_cache.cpp
+++ b/resolv/res_cache.cpp
@@ -1502,6 +1502,9 @@
                                        cache = find_named_cache_locked(netid);
                                        return !cache_has_pending_request_locked(cache, &key, false);
                                    });
+            if (!cache) {
+                return RESOLV_CACHE_NOTFOUND;
+            }
             if (ret == false) {
                 resolv_cache_info* info = find_cache_info_locked(netid);
                 if (info != NULL) {