Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dcfe91e1 authored by Taiju Tsuiki's avatar Taiju Tsuiki
Browse files

Avoid closing invalid FD in Surface and GraphicBufferMapper

GraphicBufferMapper::lockAsync{,YCbCr} close the fence FD even when the FD
is invalid.

Change-Id: Ia2b4dae3b2c06426e34f623f19ba92435f486ab7
parent de5c15b8
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -131,8 +131,10 @@ status_t GraphicBufferMapper::lockAsync(buffer_handle_t handle,
                bounds.left, bounds.top, bounds.width(), bounds.height(),
                vaddr, fenceFd);
    } else {
        if (fenceFd >= 0) {
            sync_wait(fenceFd, -1);
            close(fenceFd);
        }
        err = mAllocMod->lock(mAllocMod, handle, static_cast<int>(usage),
                bounds.left, bounds.top, bounds.width(), bounds.height(),
                vaddr);
@@ -154,8 +156,10 @@ status_t GraphicBufferMapper::lockAsyncYCbCr(buffer_handle_t handle,
                static_cast<int>(usage), bounds.left, bounds.top,
                bounds.width(), bounds.height(), ycbcr, fenceFd);
    } else if (mAllocMod->lock_ycbcr != NULL) {
        if (fenceFd >= 0) {
            sync_wait(fenceFd, -1);
            close(fenceFd);
        }
        err = mAllocMod->lock_ycbcr(mAllocMod, handle, static_cast<int>(usage),
                bounds.left, bounds.top, bounds.width(), bounds.height(),
                ycbcr);