1
0
Fork 0

avformat/hls_sample_encryption: Always free AC3HeaderInfo on error

The code currently presumes that a return value of AVERROR(ENOMEM)
implies that ac3hdr could not be allocated, so it need not be freed.
Yet any avpriv_ac3_parse_header() might allocate more than the
AC3HeaderInfo internally (it doesn't currently), so simply free
it unconditionally.

Fixes Coverity issues #1492870 and #1492868.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2023-07-31 11:42:23 +02:00
parent 80cc9b81de
commit 28817b90fc
1 changed files with 2 additions and 4 deletions

View File

@ -105,8 +105,7 @@ int ff_hls_senc_parse_audio_setup_info(AVStream *st, HLSAudioSetupInfo *info)
ret = avpriv_ac3_parse_header(&ac3hdr, info->setup_data, info->setup_data_length);
if (ret < 0) {
if (ret != AVERROR(ENOMEM))
av_free(ac3hdr);
av_free(ac3hdr);
return ret;
}
@ -317,8 +316,7 @@ static int get_next_ac3_eac3_sync_frame(CodecParserContext *ctx, AudioFrame *fra
ret = avpriv_ac3_parse_header(&hdr, frame->data, ctx->buf_end - frame->data);
if (ret < 0) {
if (ret != AVERROR(ENOMEM))
av_free(hdr);
av_free(hdr);
return ret;
}