Parcel: file descriptor leak
Resolve a file descriptor leak when a request for
ashmem size adjustment is not filed.
Change-Id: I4ebccfd096ec5313725fd99dc3e025f9561d061f
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index 066b4d1..9ca3c06 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -170,15 +170,15 @@
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;
}