X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Felsdec.c;h=cb0e9c65340943cead8ac62c32aade63393b7125;hb=30f7021aa0be2c978aefb73894b643c9bafbf51c;hp=4797965457a4f063655bb3c4dde8173e81ac42ee;hpb=8a15ad8a175cb97d6c1102b777f28e4d20846fec;p=ffmpeg diff --git a/libavcodec/elsdec.c b/libavcodec/elsdec.c index 4797965457a..cb0e9c65340 100644 --- a/libavcodec/elsdec.c +++ b/libavcodec/elsdec.c @@ -271,7 +271,7 @@ void ff_els_decoder_init(ElsDecCtx *ctx, const uint8_t *in, size_t data_size) void ff_els_decoder_uninit(ElsUnsignedRung *rung) { - av_free(rung->rem_rung_list); + av_freep(&rung->rem_rung_list); } static int els_import_byte(ElsDecCtx *ctx) @@ -391,12 +391,10 @@ unsigned ff_els_decode_unsigned(ElsDecCtx *ctx, ElsUnsignedRung *ur) if (ur->rung_list_size <= (ur->avail_index + 2) * sizeof(ElsRungNode)) { // remember rung_node position ptrdiff_t pos = rung_node - ur->rem_rung_list; - ur->rem_rung_list = av_realloc(ur->rem_rung_list, + ctx->err = av_reallocp(&ur->rem_rung_list, ur->rung_list_size + RUNG_SPACE); - if (!ur->rem_rung_list) { - av_free(ur->rem_rung_list); - ctx->err = AVERROR(ENOMEM); + if (ctx->err < 0) { return 0; } memset((uint8_t *) ur->rem_rung_list + ur->rung_list_size, 0,