summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Salyzyn <salyzyn@google.com>2016-01-27 08:02:48 -0800
committerMark Salyzyn <salyzyn@google.com>2016-01-27 09:56:48 -0800
commitb454d8ffa928e33dd54c979a747994acbd117397 (patch)
treeb2ae006cc21fc7a09cf7fa3c0b16cb9557eb5686
parentabed7f7aebdbdd20fdb37d0d6e79e50905c7f5d5 (diff)
downloadnative-b454d8ffa928e33dd54c979a747994acbd117397.tar.gz
Parcel: file descriptor leak
Resolve a file descriptor leak when a request for ashmem size adjustment is not filed. Change-Id: I4ebccfd096ec5313725fd99dc3e025f9561d061f
-rw-r--r--libs/binder/Parcel.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index 066b4d1306..9ca3c06b15 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -170,15 +170,15 @@ static void release_object(const sp<ProcessState>& proc,
return;
}
case BINDER_TYPE_FD: {
- if (outAshmemSize != NULL) {
- if (obj.cookie != 0) {
+ if (obj.cookie != 0) { // owned
+ if (outAshmemSize != NULL) {
int size = ashmem_get_size_region(obj.handle);
if (size > 0) {
*outAshmemSize -= size;
}
-
- close(obj.handle);
}
+
+ close(obj.handle);
}
return;
}