Close the socket fd in case of an exception during setupSocket method to avoid socket leak.
Bug: 350514743
When dump of networkDiagnostics is triggered, if there is any error when performing IcmpCheck and DnsUdpCheck measurements, the failure is recorded and the method is returned.
The socket fds are not closed leading to open sockets and file descriptor leak.
This change is to call close() on the open sockets in case of an error in the catch block.
The following is logs collected by dumping network diagnostics via "adb shell dumpsys connectivity --diag", and introducing an exception in setupSocket method.
===
//Without the fix, an error in setupSocket leaves open fds.
01-01 00:25:45.611 1179 32581 I NetworkDiagnostics: setupSocket mFileDescriptor = java.io.FileDescriptor@b9983db
01-01 00:25:45.612 1179 32580 I NetworkDiagnostics: IcmpCheck catchblock open mFileDescriptor = java.io.FileDescriptor@cec0e78
01-01 00:25:45.612 1179 32582 I NetworkDiagnostics: setupSocket mFileDescriptor = java.io.FileDescriptor@5bae951
01-01 00:25:45.613 1179 32582 I NetworkDiagnostics: DnsUdpCheck catchblock open mFileDescriptor = java.io.FileDescriptor@5bae951
//With the fix, the open fds are closed.
01-01 00:30:00.884 1179 8744 I NetworkDiagnostics: setupSocket mFileDescriptor = java.io.FileDescriptor@1aa20a2
01-01 00:30:00.885 1179 8744 I NetworkDiagnostics: IcmpCheck catchblock open mFileDescriptor = java.io.FileDescriptor@1aa20a2
01-01 00:30:00.885 1179 8744 I NetworkDiagnostics: IcmpCheck catchblock closing mFileDescriptor= java.io.FileDescriptor@1aa20a2
01-01 00:30:00.885 1179 8744 I NetworkDiagnostics: closeQuietly mFileDescriptor = java.io.FileDescriptor@1aa20a2
01-01 00:30:00.885 1179 8746 I NetworkDiagnostics: setupSocket mFileDescriptor = java.io.FileDescriptor@aad7133
01-01 00:30:00.886 1179 8746 I NetworkDiagnostics: DnsUdpCheck catchblock open mFileDescriptor = java.io.FileDescriptor@aad7133
01-01 00:30:00.886 1179 8746 I NetworkDiagnostics: DnsUdpCheck catchblock closing mFileDescriptor= java.io.FileDescriptor@aad7133
01-01 00:30:00.886 1179 8746 I NetworkDiagnostics: closeQuietly mFileDescriptor = java.io.FileDescriptor@aad7133
===
Change-Id: I92f30af1b7b98813bd946bd3d9fd506f15367eab
Signed-off-by: Alekhya Karavadi <akaravad@ford.com>
1 file changed