Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42bd8e1e authored by Josh Gao's avatar Josh Gao
Browse files

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
parent 401fb248
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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());
+3 −1
Original line number Diff line number Diff line
@@ -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());