From 09c00f25af6e711275dd8a562294ebd904c4eace Mon Sep 17 00:00:00 2001 From: George Burgess IV Date: Tue, 18 Jul 2017 15:59:47 -0700 Subject: [PATCH] Fix use-after-free Since putOrDelete may delete the layer, we shouldn't be accessing its member after calling it. Caught by the static analyzer: frameworks/base/libs/hwui/renderstate/OffscreenBufferPool.cpp:183:44: warning: Use of memory after it is freed Bug: 27101951 Test: mma. Static analyzer warning is gone. Change-Id: I25ee8b45ede608da52bf58d1d9f52ce3bb60d4cb --- libs/hwui/renderstate/OffscreenBufferPool.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/hwui/renderstate/OffscreenBufferPool.cpp b/libs/hwui/renderstate/OffscreenBufferPool.cpp index 90b27c8d8fb0c..2dfa6d4dc839b 100644 --- a/libs/hwui/renderstate/OffscreenBufferPool.cpp +++ b/libs/hwui/renderstate/OffscreenBufferPool.cpp @@ -179,8 +179,9 @@ OffscreenBuffer* OffscreenBufferPool::resize(OffscreenBuffer* layer, layer->region.clear(); return layer; } + bool wideColorGamut = layer->wideColorGamut; putOrDelete(layer); - return get(renderState, width, height, layer->wideColorGamut); + return get(renderState, width, height, wideColorGamut); } void OffscreenBufferPool::dump() {