From 21346b09802eb61a85875dd6ddcd9e44bb2472b4 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Sat, 13 Mar 2021 11:57:07 +0800 Subject: [PATCH] fix Fix problematic realloc (#19812) old-commit-hash: e7360292351d11db4fd5c08a22624286957c68b9 --- selfdrive/loggerd/omx_encoder.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/selfdrive/loggerd/omx_encoder.cc b/selfdrive/loggerd/omx_encoder.cc index 1496e82d26..b629490f5a 100644 --- a/selfdrive/loggerd/omx_encoder.cc +++ b/selfdrive/loggerd/omx_encoder.cc @@ -349,12 +349,10 @@ void OmxEncoder::handle_out_buf(OmxEncoder *e, OMX_BUFFERHEADERTYPE *out_buf) { if (e->remuxing) { if (!e->wrote_codec_config && e->codec_config_len > 0) { - if (e->codec_ctx->extradata_size < e->codec_config_len) { - e->codec_ctx->extradata = (uint8_t *)realloc(e->codec_ctx->extradata, e->codec_config_len + AV_INPUT_BUFFER_PADDING_SIZE); - } + // extradata will be freed by av_free() in avcodec_free_context() + e->codec_ctx->extradata = (uint8_t*)av_mallocz(e->codec_config_len + AV_INPUT_BUFFER_PADDING_SIZE); e->codec_ctx->extradata_size = e->codec_config_len; memcpy(e->codec_ctx->extradata, e->codec_config, e->codec_config_len); - memset(e->codec_ctx->extradata + e->codec_ctx->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); err = avcodec_parameters_from_context(e->out_stream->codecpar, e->codec_ctx); assert(err >= 0);