From 42bd8e1ec05dd11a7838ff37345ff1d6be77641b Mon Sep 17 00:00:00 2001 From: Josh Gao Date: Wed, 31 Oct 2018 12:26:40 -0700 Subject: [PATCH] Avoid calling ParcelFileDescriptor.fromSocket on new Sockets. Previously, we were calling ParcelFileDescriptor.fromSocket on a newly initialized Socket, which doesn't actually create a file descriptor until the Socket is bound or connected. Bind the Socket to a random port to force the file descriptor to be allocated. Test: treehugger Change-Id: Id92a3e1316881d1c5382485aa2d6a41fc37e9651 --- .../android/server/IpSecServiceParameterizedTest.java | 9 +++++++-- tests/net/java/com/android/server/IpSecServiceTest.java | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java b/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java index 9b919abfa41d..38e9563dc56a 100644 --- a/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java +++ b/tests/net/java/com/android/server/IpSecServiceParameterizedTest.java @@ -525,7 +525,10 @@ public class IpSecServiceParameterizedTest { IpSecTransformResponse createTransformResp = mIpSecService.createTransform(ipSecConfig, new Binder(), "blessedPackage"); - ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket()); + + Socket socket = new Socket(); + socket.bind(null); + ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket); int resourceId = createTransformResp.resourceId; mIpSecService.applyTransportModeTransform(pfd, IpSecManager.DIRECTION_OUT, resourceId); @@ -542,7 +545,9 @@ public class IpSecServiceParameterizedTest { @Test public void testRemoveTransportModeTransform() throws Exception { - ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket()); + Socket socket = new Socket(); + socket.bind(null); + ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket); mIpSecService.removeTransportModeTransforms(pfd); verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd.getFileDescriptor()); diff --git a/tests/net/java/com/android/server/IpSecServiceTest.java b/tests/net/java/com/android/server/IpSecServiceTest.java index 2c94a601fbf6..8124f0aabcb9 100644 --- a/tests/net/java/com/android/server/IpSecServiceTest.java +++ b/tests/net/java/com/android/server/IpSecServiceTest.java @@ -422,7 +422,9 @@ public class IpSecServiceTest { @Test public void testRemoveTransportModeTransform() throws Exception { - ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(new Socket()); + Socket socket = new Socket(); + socket.bind(null); + ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket); mIpSecService.removeTransportModeTransforms(pfd); verify(mMockNetd).ipSecRemoveTransportModeTransform(pfd.getFileDescriptor());