Parcel: file descriptor leak
Resolve a file descriptor leak when a request for
ashmem size adjustment is not filed.
Change-Id: I4ebccfd096ec5313725fd99dc3e025f9561d061f
(cherry picked from AOSP commit b454d8ffa928e33dd54c979a747994acbd117397)
diff --git a/Parcel.cpp b/Parcel.cpp
index c8371e5..0e439e0 100644
--- a/Parcel.cpp
+++ b/Parcel.cpp
@@ -172,15 +172,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;
}