summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-04-28 02:24:16 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-05-03 12:44:54 +0200
commitca0a38f2f7803ab8fa12913d0385d4c70f8d6345 (patch)
tree2d69f2f082a7a90ad3974757ac812bf8745ad8a0 /libavformat
parentd13feae0f85bebdd35e44ccbadf974b10dc3cef1 (diff)
avformat/matroskaenc: Replace impossible condition with assert
If a FLAC track uses an unconventional channel layout, the Matroska muxer adds a WAVEFORMATEXTENSIBLE_CHANNEL_MASK VorbisComment to the CodecPrivate to preserve this information. And given that FLAC uses 24bit length fields, the muxer checks if the length is more than this and errors out if it is. Yet this can never happen, because we create the AVDictionary that is the source for the VorbisComment. It only contains exactly one entry that can't grow infinitely large (in fact, the length of the VorbisComment is <= 4 + 33 + 1 + 18 + strlen(LIBAVFORMAT_IDENT)). So we can simply assert the size to be < (1 << 24) - 4. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/matroskaenc.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index f69b3c39da..87dff6ab7d 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -631,10 +631,7 @@ static int put_flac_codecpriv(AVFormatContext *s, AVIOContext *pb,
av_dict_set(&dict, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0);
len = ff_vorbiscomment_length(dict, vendor, NULL, 0);
- if (len >= (1 << 24) - 4) {
- av_dict_free(&dict);
- return AVERROR(EINVAL);
- }
+ av_assert1(len < (1 << 24) - 4);
data = av_malloc(len + 4);
if (!data) {