From 08f2e327372fb8c40e6b15a389d36ca67e3644c9 Mon Sep 17 00:00:00 2001 From: Naomi Luis Date: Fri, 3 Feb 2012 15:30:09 -0800 Subject: [PATCH] liboverlay: Free rotator memory only if it was allocated. Check if the rotator memory was allocated before attempting to free it. CRs-fixed: 334607 (cherry picked from commit 4feb43e3a964878b2c708e7417df8d116e1d17ef) Change-Id: Iac5d957ce7286848443e3d05f1c8d9c32b258b72 --- liboverlay/overlayLibUI.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/liboverlay/overlayLibUI.cpp b/liboverlay/overlayLibUI.cpp index ea3bfaf..c7e9f09 100755 --- a/liboverlay/overlayLibUI.cpp +++ b/liboverlay/overlayLibUI.cpp @@ -126,7 +126,7 @@ void Display::closeDisplay() { mFD = NO_INIT; } -Rotator::Rotator() : mFD(NO_INIT), mSessionID(NO_INIT), mPmemFD(-1) +Rotator::Rotator() : mFD(NO_INIT), mSessionID(NO_INIT), mPmemFD(NO_INIT) { mAlloc = gralloc::IAllocController::getInstance(false); } @@ -191,9 +191,11 @@ status_t Rotator::closeRotSession() { if (mSessionID != NO_INIT && mFD != NO_INIT) { ioctl(mFD, MSM_ROTATOR_IOCTL_FINISH, &mSessionID); close(mFD); - sp memalloc = mAlloc->getAllocator(mBufferType); - memalloc->free_buffer(mPmemAddr, mSize * mNumBuffers, 0, mPmemFD); - close(mPmemFD); + if (NO_INIT != mPmemFD) { + sp memalloc = mAlloc->getAllocator(mBufferType); + memalloc->free_buffer(mPmemAddr, mSize * mNumBuffers, 0, mPmemFD); + close(mPmemFD); + } } mFD = NO_INIT;