[FFmpeg-devel] [PATCH 06/20] avformat/matroskaenc: Check functions that can fail
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Wed Feb 5 14:59:00 EET 2020
Andreas Rheinhardt:
> Sometimes it has not been checked whether opening the dynamic buffer for
> writing Tags fails; this might have led to segfaults.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> libavformat/matroskaenc.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> index 8cea829b31..7857656309 100644
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -1557,7 +1557,9 @@ static int mkv_write_tag_targets(AVFormatContext *s, uint32_t elementid,
> ret = mkv_add_seekhead_entry(mkv->seekhead, MATROSKA_ID_TAGS, avio_tell(s->pb));
> if (ret < 0) return ret;
>
> - start_ebml_master_crc32(s->pb, &mkv->tags_bc, mkv, MATROSKA_ID_TAGS);
> + ret = start_ebml_master_crc32(s->pb, &mkv->tags_bc, mkv, MATROSKA_ID_TAGS);
> + if (ret < 0)
> + return ret;
> }
> pb = mkv->tags_bc;
>
> @@ -1653,7 +1655,10 @@ static int mkv_write_tags(AVFormatContext *s)
> if (st->codecpar->codec_type == AVMEDIA_TYPE_ATTACHMENT)
> continue;
>
> - mkv_write_tag_targets(s, MATROSKA_ID_TAGTARGETS_TRACKUID, i + 1, &tag_target);
> + ret = mkv_write_tag_targets(s, MATROSKA_ID_TAGTARGETS_TRACKUID,
> + i + 1, &tag_target);
> + if (ret < 0)
> + return ret;
> pb = mkv->tags_bc;
>
> tag = start_ebml_master(pb, MATROSKA_ID_SIMPLETAG, 0);
>
Ping.
- Andreas
More information about the ffmpeg-devel
mailing list