summaryrefslogtreecommitdiff
path: root/libc2dcolorconvert
diff options
context:
space:
mode:
authorKarthikeyan Periasamy <kperiasa@codeaurora.org>2017-08-04 18:11:09 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-08-04 18:12:22 -0700
commit47808e71ebe609e97d4e3f1651267980be053e92 (patch)
treea83fe6b228792a7418269640b7be3b8ff463b8c6 /libc2dcolorconvert
parentb0f27061530f9ceb9168a2cd0f1b28828a78f1c5 (diff)
downloadmedia-47808e71ebe609e97d4e3f1651267980be053e92.tar.gz
libc2dcolorconvert: Fix potential dead lock
Call unlock before the execution comes out of the function call. Change-Id: I197f6007771e15292f5212eae6c08cd92e6d9810 CRs-Fixed: 2088140
Diffstat (limited to 'libc2dcolorconvert')
-rw-r--r--libc2dcolorconvert/C2DColorConverter.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/libc2dcolorconvert/C2DColorConverter.cpp b/libc2dcolorconvert/C2DColorConverter.cpp
index c8ef2964..8f64e4b2 100644
--- a/libc2dcolorconvert/C2DColorConverter.cpp
+++ b/libc2dcolorconvert/C2DColorConverter.cpp
@@ -183,8 +183,10 @@ bool C2DColorConverter::convertC2D(int srcFd, void *srcBase, void * srcData,
} else {
srcMappedGpuAddr = (uint8_t *)getMappedGPUAddr(srcFd, srcData, mSrcSize);
- if (!srcMappedGpuAddr)
- return false;
+ if (!srcMappedGpuAddr) {
+ pthread_mutex_unlock(&mLock);
+ return false;
+ }
if (isYUVSurface(mSrcFormat)) {
ret = updateYUVSurfaceDef(srcMappedGpuAddr, srcBase, srcData, true);
@@ -197,6 +199,7 @@ bool C2DColorConverter::convertC2D(int srcFd, void *srcBase, void * srcData,
dstMappedGpuAddr = (uint8_t *)getMappedGPUAddr(dstFd, dstData, mDstSize);
if (!dstMappedGpuAddr) {
unmapGPUAddr((unsigned long)srcMappedGpuAddr);
+ pthread_mutex_unlock(&mLock);
return false;
}