From f9c74ffa6fad564e58a12f61f57dd41e0d66e642 Mon Sep 17 00:00:00 2001 From: Murai Takashi Date: Wed, 30 Jan 2019 05:16:57 +0900 Subject: [PATCH] add-ons/media/plugins/ffmpeg: Fix PVS 2355 Fix memory leak when realloc() fails. Change-Id: I12b57fecbd7f9645f15afb9d0f9a6db937a5ec09 Reviewed-on: https://review.haiku-os.org/c/1014 Reviewed-by: Barrett17 --- src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp index 2d15d87955..f5641fa7b6 100644 --- a/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp +++ b/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp @@ -1456,11 +1456,15 @@ status_t AVCodecDecoder::_CopyChunkToChunkBufferAndAddPadding(const void* chunk, size_t chunkSize) { - fChunkBuffer = static_cast(realloc(fChunkBuffer, + uint8_t* tmpBuffer = static_cast(realloc(fChunkBuffer, chunkSize + AV_INPUT_BUFFER_PADDING_SIZE)); - if (fChunkBuffer == NULL) { + if (tmpBuffer == NULL) { + free(fChunkBuffer); + fChunkBuffer = NULL; fChunkBufferSize = 0; return B_NO_MEMORY; + } else { + fChunkBuffer = tmpBuffer; } memcpy(fChunkBuffer, chunk, chunkSize);