From b584c6eb8cd43d8fc566626a633e3c0b6e33d7de Mon Sep 17 00:00:00 2001 From: Chuanghua Zhao Date: Wed, 17 Oct 2018 20:00:04 +0800 Subject: [PATCH] Fix FD leak during ADB shell install. Temp fileBridge never closed before remove from bridge list, it will cause socket FD leak during ADB install. Improvements: Call FileBridge#forceClose() to close FD. Test: 1.PMS install and un-install work normal. 2.Socket FD in system_server process not increase during ADB install. BUG: 117965848 Change-Id: I29951095f66f069263f944787875e22b666e7467 --- .../core/java/com/android/server/pm/PackageInstallerSession.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index fa934fe23fff4..81a836749a7fd 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -702,6 +702,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { if (PackageInstaller.ENABLE_REVOCABLE_FD) { mFds.remove(fd); } else { + bridge.forceClose(); mBridges.remove(bridge); } }