summaryrefslogtreecommitdiff
path: root/framework/java/android/bluetooth/BluetoothSocket.java
diff options
context:
space:
mode:
authorZach Johnson <zachoverflow@google.com>2015-07-13 18:00:35 -0700
committerAndre Eisenbach <eisenbach@google.com>2015-07-14 03:40:49 +0000
commitc6242459415fe6bd92aa1e0d69dd63edb339f7b7 (patch)
tree9ba6777bc2cc2abed16ab9cd8727cb75ed4fe743 /framework/java/android/bluetooth/BluetoothSocket.java
parenta25c8ff64c627cfca23367845383e30ee8b1a0a1 (diff)
Fix BluetoothSocket file descriptor leak
Sockets accepted on a server socket didn't populate the mPfd field, which is used to close out the java end of the native-and-java communication socket when the overall rfcomm socket is closed. #badnewsbears b/21398841 Change-Id: I3adb0a9965f83d0f3006fa4f79ea4abeab5c9a17
Diffstat (limited to 'framework/java/android/bluetooth/BluetoothSocket.java')
-rw-r--r--framework/java/android/bluetooth/BluetoothSocket.java2
1 files changed, 2 insertions, 0 deletions
diff --git a/framework/java/android/bluetooth/BluetoothSocket.java b/framework/java/android/bluetooth/BluetoothSocket.java
index 6302521e63..fb81fd1ea9 100644
--- a/framework/java/android/bluetooth/BluetoothSocket.java
+++ b/framework/java/android/bluetooth/BluetoothSocket.java
@@ -240,6 +240,8 @@ public final class BluetoothSocket implements Closeable {
as.close();
throw new IOException("bt socket acept failed");
}
+
+ as.mPfd = new ParcelFileDescriptor(fds[0]);
as.mSocket = new LocalSocket(fds[0]);
as.mSocketIS = as.mSocket.getInputStream();
as.mSocketOS = as.mSocket.getOutputStream();