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

Commit 1cd3625e authored by Leon Scroggins III's avatar Leon Scroggins III Committed by Leon Scroggins
Browse files

Fix ref counting bug in AHardwareBuffer_recvHandleFromUnixSocket

Follow-on from I443015d63245e49e8cf38847030c9da8142cbe50. If unflatten
returns an error, this ensures that the GraphicBuffer is deleted. This
matches similar code in this file.
Bug: NA
Test: make
Test: AHardwareBufferTest_SendAndRecvSucceeds

Change-Id: Ibcf21347625e3c9df127a0267aa05b046132e0a0
parent 1648aa42
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -353,12 +353,12 @@ int AHardwareBuffer_recvHandleFromUnixSocket(int socketFd, AHardwareBuffer** out
        return INVALID_OPERATION;
    }

    GraphicBuffer* gBuffer = new GraphicBuffer();
    sp<GraphicBuffer> gBuffer(new GraphicBuffer());
    status_t err = gBuffer->unflatten(data, dataLen, fdData, fdCount);
    if (err != NO_ERROR) {
        return err;
    }
    *outBuffer = AHardwareBuffer_from_GraphicBuffer(gBuffer);
    *outBuffer = AHardwareBuffer_from_GraphicBuffer(gBuffer.get());
    // Ensure the buffer has a positive ref-count.
    AHardwareBuffer_acquire(*outBuffer);