summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Desaulniers <ndesaulniers@google.com>2019-10-07 20:19:39 -0700
committerBryan Ferris <bferris@google.com>2020-02-27 21:55:55 +0000
commit75b7bf70de4093eacdb1d59738deae2d7cca4a3b (patch)
treebe1553f07e4782a3402be006ffceb7b540435935
parent58cc8f2c0254f03d66a28ae1cf0809c171d4ac7d (diff)
downloadframeworks_av-75b7bf70de4093eacdb1d59738deae2d7cca4a3b.tar.gz
frameworks_av-75b7bf70de4093eacdb1d59738deae2d7cca4a3b.tar.bz2
frameworks_av-75b7bf70de4093eacdb1d59738deae2d7cca4a3b.zip
[media][sfplugin] fix -Wdangling-gsl
C2BufferData#linearBlocks() returns a std::vector. Chaining method calls results in an immediate dereference of a dangling pointer. Save a reference to the otherwise temporary for the duration of the function call. Bug: 142544793 Test: m, flash device Change-Id: I99d662a8fe5deec652cdcd82f420c836c76d5539 Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
-rw-r--r--media/codec2/sfplugin/CCodecBuffers.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/media/codec2/sfplugin/CCodecBuffers.cpp b/media/codec2/sfplugin/CCodecBuffers.cpp
index 26c702ddc0..ed8b832478 100644
--- a/media/codec2/sfplugin/CCodecBuffers.cpp
+++ b/media/codec2/sfplugin/CCodecBuffers.cpp
@@ -878,9 +878,10 @@ void OutputBuffersArray::realloc(const std::shared_ptr<C2Buffer> &c2buffer) {
switch (c2buffer->data().type()) {
case C2BufferData::LINEAR: {
uint32_t size = kLinearBufferSize;
- const C2ConstLinearBlock &block = c2buffer->data().linearBlocks().front();
- if (block.size() < kMaxLinearBufferSize / 2) {
- size = block.size() * 2;
+ const std::vector<C2ConstLinearBlock> &linear_blocks = c2buffer->data().linearBlocks();
+ const uint32_t block_size = linear_blocks.front().size();
+ if (block_size < kMaxLinearBufferSize / 2) {
+ size = block_size * 2;
} else {
size = kMaxLinearBufferSize;
}