avcodec/hcom: Cleanup generically upon init failure

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
pull/351/head
Andreas Rheinhardt 4 years ago
parent 8da8774d8e
commit 0bb5cc0ee9
  1. 9
      libavcodec/hcom.c

@ -67,15 +67,11 @@ static av_cold int hcom_init(AVCodecContext *avctx)
if (s->dict[i].l >= 0 &&
(s->dict[i].l >= s->dict_entries ||
s->dict[i].r >= s->dict_entries ||
s->dict[i].r < 0 )) {
av_freep(&s->dict);
s->dict[i].r < 0 ))
return AVERROR_INVALIDDATA;
}
}
if (s->dict[0].l < 0) {
av_freep(&s->dict);
if (s->dict[0].l < 0)
return AVERROR_INVALIDDATA;
}
avctx->sample_fmt = AV_SAMPLE_FMT_U8;
s->dict_entry = 0;
@ -148,4 +144,5 @@ AVCodec ff_hcom_decoder = {
.close = hcom_close,
.decode = hcom_decode,
.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};

Loading…
Cancel
Save