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

Commit 162f643d authored by Ady Abraham's avatar Ady Abraham
Browse files

SurfaceFlinger: check for nullptr on setFrameRate

Make sure that the layer still exists before trying to set
the frame rate for it.

Bug: 170027345
Change-Id: Ice1edd7c5320f4d1d915643e30430919de258dbc
Test: manual
parent c33d16d4
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -6227,6 +6227,11 @@ status_t SurfaceFlinger::setFrameRate(const sp<IGraphicBufferProducer>& surface,
        Mutex::Autolock lock(mStateLock);
        Mutex::Autolock lock(mStateLock);
        if (authenticateSurfaceTextureLocked(surface)) {
        if (authenticateSurfaceTextureLocked(surface)) {
            sp<Layer> layer = (static_cast<MonitoredProducer*>(surface.get()))->getLayer();
            sp<Layer> layer = (static_cast<MonitoredProducer*>(surface.get()))->getLayer();
            if (layer == nullptr) {
                ALOGE("Attempt to set frame rate on a layer that no longer exists");
                return BAD_VALUE;
            }

            if (layer->setFrameRate(
            if (layer->setFrameRate(
                        Layer::FrameRate(frameRate,
                        Layer::FrameRate(frameRate,
                                         Layer::FrameRate::convertCompatibility(compatibility)))) {
                                         Layer::FrameRate::convertCompatibility(compatibility)))) {