Handle closed socket and NPE properly
Don't get interfaceIndex if the socket is closed. Properly catch NPE
instead of letting is propagating.
Test: TH
Change-Id: If962541e67dd6323426e46bc7a1f118786f83b9b
diff --git a/service-t/src/com/android/server/connectivity/mdns/MdnsSocket.java b/service-t/src/com/android/server/connectivity/mdns/MdnsSocket.java
index d690032..c51811b 100644
--- a/service-t/src/com/android/server/connectivity/mdns/MdnsSocket.java
+++ b/service-t/src/com/android/server/connectivity/mdns/MdnsSocket.java
@@ -128,9 +128,13 @@
* cannot be determined, returns -1.
*/
public int getInterfaceIndex() {
+ if (multicastSocket.isClosed()) {
+ sharedLog.e("Socket is closed");
+ return -1;
+ }
try {
return multicastSocket.getNetworkInterface().getIndex();
- } catch (SocketException e) {
+ } catch (SocketException | NullPointerException e) {
sharedLog.e("Failed to retrieve interface index for socket.", e);
return -1;
}