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);