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

Commit 02f042dd authored by Dave Platt's avatar Dave Platt Committed by dcashman
Browse files

Fix socket descriptor leak from Zygote to child app

Due to an API change in LocalSocket, Zygote must now
manually close the FileDescriptor it created when it
registered a LocalServerSocket.  The LocalSocket.close()
routine will no longer do so.

Bug: 12114500

(cherry picked from commit 70ef29b0)

Change-Id: Ief23a3c99e007dc4aa6f94dfb47a1b2b6c854dad
parent fd8be467
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -192,10 +192,16 @@ public class ZygoteInit {
    static void closeServerSocket() {
        try {
            if (sServerSocket != null) {
                FileDescriptor fd = sServerSocket.getFileDescriptor();
                sServerSocket.close();
                if (fd != null) {
                    Libcore.os.close(fd);
                }
            }
        } catch (IOException ex) {
            Log.e(TAG, "Zygote:  error closing sockets", ex);
        } catch (libcore.io.ErrnoException ex) {
            Log.e(TAG, "Zygote:  error closing descriptor", ex);
        }

        sServerSocket = null;