summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorDave Platt <dplatt@google.com>2013-12-12 15:45:49 -0800
committerdcashman <dcashman@google.com>2014-01-06 13:59:20 -0800
commit02f042ddd9ddf47ef88c4f174eb19a9bee296a45 (patch)
tree979584fa33e9ba7d5aa89003c0fbb9c02adbb41a /core/java/com
parentfd8be467a38eded82d17740824cf87daa38e25e0 (diff)
downloadframeworks_base-02f042ddd9ddf47ef88c4f174eb19a9bee296a45.zip
frameworks_base-02f042ddd9ddf47ef88c4f174eb19a9bee296a45.tar.gz
frameworks_base-02f042ddd9ddf47ef88c4f174eb19a9bee296a45.tar.bz2
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 70ef29b04ee4ef7d7acfec79041dbe800961195e) Change-Id: Ief23a3c99e007dc4aa6f94dfb47a1b2b6c854dad
Diffstat (limited to 'core/java/com')
-rw-r--r--core/java/com/android/internal/os/ZygoteInit.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index c44afae..1548f1b 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -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;