From 8f4adaedafd3383de866cbd136d2d7b724c0c615 Mon Sep 17 00:00:00 2001 From: Yuyang Huang Date: Mon, 11 Sep 2023 13:07:53 +0900 Subject: [PATCH] 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 --- .../com/android/server/connectivity/mdns/MdnsSocket.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 d690032f16..c51811b310 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 @@ public class MdnsSocket { * 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; }