do not merge: cherry-picked 929b4855b8208d36272769e8eeaa6cd2823b94c0 from master branch

Change-Id: Ie20371234a531f65f523682a0d0c27394dc30afa
diff --git a/services/java/com/android/server/WifiWatchdogService.java b/services/java/com/android/server/WifiWatchdogService.java
index 87f8a6e..445dd03 100644
--- a/services/java/com/android/server/WifiWatchdogService.java
+++ b/services/java/com/android/server/WifiWatchdogService.java
@@ -1217,8 +1217,9 @@
         private static Random sRandom = new Random();
         
         static boolean isDnsReachable(int dns, int timeout) {
+            DatagramSocket socket = null;
             try {
-                DatagramSocket socket = new DatagramSocket();
+                socket = new DatagramSocket();
                 
                 // Set some socket properties
                 socket.setSoTimeout(timeout);
@@ -1271,6 +1272,10 @@
                     Slog.d(TAG, "DnsPinger.isReachable got an unknown exception", e);
                 }
                 return false;
+            } finally {
+                if (socket != null) {
+                    socket.close();
+                }
             }
         }