mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/avienc: Fix memleaks on errors
Fixes CID1361951 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
ea88dc3e8e
commit
9d5894b239
|
@ -728,10 +728,10 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
} else
|
||||
reshuffle_ret = 0;
|
||||
if (par->format == AV_PIX_FMT_PAL8) {
|
||||
int ret2 = ff_get_packet_palette(s, opkt, reshuffle_ret, avist->palette);
|
||||
if (ret2 < 0)
|
||||
return ret2;
|
||||
if (ret2) {
|
||||
ret = ff_get_packet_palette(s, opkt, reshuffle_ret, avist->palette);
|
||||
if (ret < 0)
|
||||
goto fail;
|
||||
if (ret) {
|
||||
int pal_size = 1 << par->bits_per_coded_sample;
|
||||
int pc_tag, i;
|
||||
|
||||
|
@ -763,7 +763,7 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
ret = avi_add_ientry(s, stream_index, tag, AVIIF_NO_TIME,
|
||||
pal_size * 4 + 4);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto fail;
|
||||
}
|
||||
pc_tag = ff_start_tag(pb, tag);
|
||||
avio_w8(pb, 0);
|
||||
|
@ -780,7 +780,10 @@ static int avi_write_packet(AVFormatContext *s, AVPacket *pkt)
|
|||
}
|
||||
if (reshuffle_ret) {
|
||||
ret = avi_write_packet_internal(s, pkt);
|
||||
av_packet_free(&pkt);
|
||||
|
||||
fail:
|
||||
if (reshuffle_ret)
|
||||
av_packet_free(&pkt);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue