From 288f2ef6294b99a4a53355273ae8ad0f5a525f65 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 14 Apr 2014 18:43:12 -0700 Subject: [PATCH] libui: fix passing Fence object over binder The Fence object was writing a size_t into the binder buffer in flatten, which changes size if the producer and consumer are running in a 32-bit and a 64-bit process. Use a uint32_t instead. Change-Id: Ifed526513800ce27f9d605101cddd922292cca37 --- libs/ui/Fence.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/ui/Fence.cpp b/libs/ui/Fence.cpp index 93ec0ce61..3c0306cf0 100644 --- a/libs/ui/Fence.cpp +++ b/libs/ui/Fence.cpp @@ -138,7 +138,7 @@ status_t Fence::flatten(void*& buffer, size_t& size, int*& fds, size_t& count) c if (size < getFlattenedSize() || count < getFdCount()) { return NO_MEMORY; } - FlattenableUtils::write(buffer, size, getFdCount()); + FlattenableUtils::write(buffer, size, (uint32_t)getFdCount()); if (isValid()) { *fds++ = mFenceFd; count--; @@ -156,7 +156,7 @@ status_t Fence::unflatten(void const*& buffer, size_t& size, int const*& fds, si return NO_MEMORY; } - size_t numFds; + uint32_t numFds; FlattenableUtils::read(buffer, size, numFds); if (numFds > 1) {