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

Commit 9c7a1f54 authored by Patrick Williams's avatar Patrick Williams
Browse files

Fix DisplayState sanitization.

Bug: 347307756
Flag: EXEMPT bugfix
Test: CredentialsTest
Change-Id: I500ff9a5bd356845e2d0be4d1430448f448c4e8a
(cherry picked from commit b6ddf525)
Merged-In: I500ff9a5bd356845e2d0be4d1430448f448c4e8a
parent 00067a8e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -62,7 +62,7 @@ public:


    status_t setTransactionState(
    status_t setTransactionState(
            const FrameTimelineInfo& frameTimelineInfo, Vector<ComposerState>& state,
            const FrameTimelineInfo& frameTimelineInfo, Vector<ComposerState>& state,
            const Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken,
            Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken,
            InputWindowCommands commands, int64_t desiredPresentTime, bool isAutoTimestamp,
            InputWindowCommands commands, int64_t desiredPresentTime, bool isAutoTimestamp,
            const std::vector<client_cache_t>& uncacheBuffers, bool hasListenerCallbacks,
            const std::vector<client_cache_t>& uncacheBuffers, bool hasListenerCallbacks,
            const std::vector<ListenerCallbacks>& listenerCallbacks, uint64_t transactionId,
            const std::vector<ListenerCallbacks>& listenerCallbacks, uint64_t transactionId,
+2 −1
Original line number Original line Diff line number Diff line
@@ -1047,7 +1047,8 @@ void SurfaceComposerClient::doUncacheBufferTransaction(uint64_t cacheId) {
    uncacheBuffer.token = BufferCache::getInstance().getToken();
    uncacheBuffer.token = BufferCache::getInstance().getToken();
    uncacheBuffer.id = cacheId;
    uncacheBuffer.id = cacheId;
    Vector<ComposerState> composerStates;
    Vector<ComposerState> composerStates;
    status_t status = sf->setTransactionState(FrameTimelineInfo{}, composerStates, {},
    Vector<DisplayState> displayStates;
    status_t status = sf->setTransactionState(FrameTimelineInfo{}, composerStates, displayStates,
                                              ISurfaceComposer::eOneWay,
                                              ISurfaceComposer::eOneWay,
                                              Transaction::getDefaultApplyToken(), {}, systemTime(),
                                              Transaction::getDefaultApplyToken(), {}, systemTime(),
                                              true, {uncacheBuffer}, false, {}, generateId(), {});
                                              true, {uncacheBuffer}, false, {}, generateId(), {});
+1 −1
Original line number Original line Diff line number Diff line
@@ -113,7 +113,7 @@ public:
    /* open/close transactions. requires ACCESS_SURFACE_FLINGER permission */
    /* open/close transactions. requires ACCESS_SURFACE_FLINGER permission */
    virtual status_t setTransactionState(
    virtual status_t setTransactionState(
            const FrameTimelineInfo& frameTimelineInfo, Vector<ComposerState>& state,
            const FrameTimelineInfo& frameTimelineInfo, Vector<ComposerState>& state,
            const Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken,
            Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken,
            InputWindowCommands inputWindowCommands, int64_t desiredPresentTime,
            InputWindowCommands inputWindowCommands, int64_t desiredPresentTime,
            bool isAutoTimestamp, const std::vector<client_cache_t>& uncacheBuffer,
            bool isAutoTimestamp, const std::vector<client_cache_t>& uncacheBuffer,
            bool hasListenerCallbacks, const std::vector<ListenerCallbacks>& listenerCallbacks,
            bool hasListenerCallbacks, const std::vector<ListenerCallbacks>& listenerCallbacks,
+1 −1
Original line number Original line Diff line number Diff line
@@ -701,7 +701,7 @@ public:


    status_t setTransactionState(
    status_t setTransactionState(
            const FrameTimelineInfo& /*frameTimelineInfo*/, Vector<ComposerState>& /*state*/,
            const FrameTimelineInfo& /*frameTimelineInfo*/, Vector<ComposerState>& /*state*/,
            const Vector<DisplayState>& /*displays*/, uint32_t /*flags*/,
            Vector<DisplayState>& /*displays*/, uint32_t /*flags*/,
            const sp<IBinder>& /*applyToken*/, InputWindowCommands /*inputWindowCommands*/,
            const sp<IBinder>& /*applyToken*/, InputWindowCommands /*inputWindowCommands*/,
            int64_t /*desiredPresentTime*/, bool /*isAutoTimestamp*/,
            int64_t /*desiredPresentTime*/, bool /*isAutoTimestamp*/,
            const std::vector<client_cache_t>& /*cachedBuffer*/, bool /*hasListenerCallbacks*/,
            const std::vector<client_cache_t>& /*cachedBuffer*/, bool /*hasListenerCallbacks*/,
+2 −2
Original line number Original line Diff line number Diff line
@@ -4498,7 +4498,7 @@ bool SurfaceFlinger::shouldLatchUnsignaled(const sp<Layer>& layer, const layer_s


status_t SurfaceFlinger::setTransactionState(
status_t SurfaceFlinger::setTransactionState(
        const FrameTimelineInfo& frameTimelineInfo, Vector<ComposerState>& states,
        const FrameTimelineInfo& frameTimelineInfo, Vector<ComposerState>& states,
        const Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken,
        Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken,
        InputWindowCommands inputWindowCommands, int64_t desiredPresentTime, bool isAutoTimestamp,
        InputWindowCommands inputWindowCommands, int64_t desiredPresentTime, bool isAutoTimestamp,
        const std::vector<client_cache_t>& uncacheBuffers, bool hasListenerCallbacks,
        const std::vector<client_cache_t>& uncacheBuffers, bool hasListenerCallbacks,
        const std::vector<ListenerCallbacks>& listenerCallbacks, uint64_t transactionId,
        const std::vector<ListenerCallbacks>& listenerCallbacks, uint64_t transactionId,
@@ -4513,7 +4513,7 @@ status_t SurfaceFlinger::setTransactionState(
        composerState.state.sanitize(permissions);
        composerState.state.sanitize(permissions);
    }
    }


    for (DisplayState display : displays) {
    for (DisplayState& display : displays) {
        display.sanitize(permissions);
        display.sanitize(permissions);
    }
    }


Loading