Message ID | 20200331123745.6461-3-andreas.rheinhardt@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | libavformat/mux patches | expand |
Context | Check | Description |
---|---|---|
andriy/ffmpeg-patchwork | success | Make fate finished |
On Tue, 31 Mar 2020, Andreas Rheinhardt wrote: > If ff_interleave_add_packet failed, the content of the newly created > packet new_pkt would leak. > > Also, it is unnecessary to zero-initialize a packet that will be put > into av_new_packet lateron as the latter already initializes the packet. > Therefore this has been removed, too. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> > --- > libavformat/audiointerleave.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/libavformat/audiointerleave.c b/libavformat/audiointerleave.c > index 2e83031bd6..f10c83d7c9 100644 > --- a/libavformat/audiointerleave.c > +++ b/libavformat/audiointerleave.c > @@ -134,10 +134,12 @@ int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt > for (i = 0; i < s->nb_streams; i++) { > AVStream *st = s->streams[i]; > if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { > - AVPacket new_pkt = { 0 }; > + AVPacket new_pkt; > while ((ret = interleave_new_audio_packet(s, &new_pkt, i, flush)) > 0) { > - if ((ret = ff_interleave_add_packet(s, &new_pkt, compare_ts)) < 0) > + if ((ret = ff_interleave_add_packet(s, &new_pkt, compare_ts)) < 0) { > + av_packet_unref(&new_pkt); > return ret; > + } > } > if (ret < 0) > return ret; LGTM, thanks. Marton
diff --git a/libavformat/audiointerleave.c b/libavformat/audiointerleave.c index 2e83031bd6..f10c83d7c9 100644 --- a/libavformat/audiointerleave.c +++ b/libavformat/audiointerleave.c @@ -134,10 +134,12 @@ int ff_audio_rechunk_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt for (i = 0; i < s->nb_streams; i++) { AVStream *st = s->streams[i]; if (st->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { - AVPacket new_pkt = { 0 }; + AVPacket new_pkt; while ((ret = interleave_new_audio_packet(s, &new_pkt, i, flush)) > 0) { - if ((ret = ff_interleave_add_packet(s, &new_pkt, compare_ts)) < 0) + if ((ret = ff_interleave_add_packet(s, &new_pkt, compare_ts)) < 0) { + av_packet_unref(&new_pkt); return ret; + } } if (ret < 0) return ret;
If ff_interleave_add_packet failed, the content of the newly created packet new_pkt would leak. Also, it is unnecessary to zero-initialize a packet that will be put into av_new_packet lateron as the latter already initializes the packet. Therefore this has been removed, too. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> --- libavformat/audiointerleave.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)